Setup

!pip install -q spotipy
import pandas as pd
import numpy as np
import json
import re 
import sys
import itertools

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.preprocessing import MinMaxScaler
import matplotlib.pyplot as plt


import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
from spotipy.oauth2 import SpotifyOAuth
import spotipy.util as util

import warnings
warnings.filterwarnings("ignore")
%matplotlib inline

Data Loading

!pip install -q -U kaggle
!pip install --upgrade --force-reinstall --no-deps kaggle
!mkdir ~/.kaggle
!cp /content/drive/MyDrive/kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!kaggle datasets download -d yamaerenay/spotify-dataset-19212020-160k-tracks
!unzip /content/spotify-dataset-19212020-160k-tracks.zip
spotify_df = pd.read_csv('tracks.csv')
spotify_df.head()
id name popularity duration_ms explicit artists id_artists release_date danceability energy key loudness mode speechiness acousticness instrumentalness liveness valence tempo time_signature
0 35iwgR4jXetI318WEWsa1Q Carve 6 126903 0 ['Uli'] ['45tIt06XoI0Iio4LBEVpls'] 1922-02-22 0.645 0.4450 0 -13.338 1 0.4510 0.674 0.7440 0.151 0.127 104.851 3
1 021ht4sdgPcrDgSk7JTbKY Capítulo 2.16 - Banquero Anarquista 0 98200 0 ['Fernando Pessoa'] ['14jtPCOoNZwquk5wd9DxrY'] 1922-06-01 0.695 0.2630 0 -22.136 1 0.9570 0.797 0.0000 0.148 0.655 102.009 1
2 07A5yehtSnoedViJAZkNnc Vivo para Quererte - Remasterizado 0 181640 0 ['Ignacio Corsini'] ['5LiOoJbxVSAMkBS2fUm3X2'] 1922-03-21 0.434 0.1770 1 -21.180 1 0.0512 0.994 0.0218 0.212 0.457 130.418 5
3 08FmqUhxtyLTn6pAh6bk45 El Prisionero - Remasterizado 0 176907 0 ['Ignacio Corsini'] ['5LiOoJbxVSAMkBS2fUm3X2'] 1922-03-21 0.321 0.0946 7 -27.961 1 0.0504 0.995 0.9180 0.104 0.397 169.980 3
4 08y9GfoqCWfOGsKdwojr5e Lady of the Evening 0 163080 0 ['Dick Haymes'] ['3BiJGZsyX9sJchTqcSA7Su'] 1922 0.402 0.1580 3 -16.900 0 0.0390 0.989 0.1300 0.311 0.196 103.220 4

Observations:

  1. This data is at a song level
  2. Many numerical values that I'll be able to use to compare movies (liveness, tempo, valence, etc)
  3. Release date will useful but I'll need to create a OHE variable for release date in 5 year increments
  4. Similar to 2, I'll need to create OHE variables for the popularity. I'll also use 5 year increments here
  5. There is nothing here related to the genre of the song which will be useful. This data alone won't help us find relavent content since this is a content based recommendation system.
data_w_genre = pd.read_csv('artists.csv')
data_w_genre.head()
id followers genres name popularity
0 0DheY5irMjBUeLybbCUEZ2 0.0 [] Armid & Amir Zare Pashai feat. Sara Rouzbehani 0
1 0DlhY15l3wsrnlfGio2bjU 5.0 [] ปูนา ภาวิณี 0
2 0DmRESX2JknGPQyO15yxg7 0.0 [] Sadaa 0
3 0DmhnbHjm1qw6NCYPeZNgJ 0.0 [] Tra'gruda 0
4 0Dn11fWM7vHQ3rinvWEl4E 2.0 [] Ioannis Panoutsopoulos 0

Observations:

  1. This data is at an artist level
  2. There are similar continuous variables as our initial dataset but I won't use this. I'll just use the values int he previous dataset.
  3. The genres are going to be really useful here and I'll need to use it moving forward. Now, the genre column appears to be in a list format but my past experience tells me that it's likely not. Let's investigate this further.
data_w_genre.dtypes
mode                  int64
genres               object
acousticness        float64
danceability        float64
duration_ms         float64
energy              float64
instrumentalness    float64
liveness            float64
loudness            float64
speechiness         float64
tempo               float64
valence             float64
popularity          float64
key                   int64
dtype: object

Voila, now we have the genre column in a format we can actually use. If you go down, you'll see how we use it.

Now, if you recall, this data is at a artist level and the previous dataset is at a song level. So what here's what we need to do:

  1. Explode artists column in the previous so each artist within a song will have their own row
  2. Merge data_w_genre to the exploded dataset in Step 1 so that the previous dataset no is enriched with genre dataset

Before I go further, let's complete these two steps.

Step 1. Similar to before, we will need to extract the artists from the string list.

spotify_df['artists_upd_v1'] = spotify_df['artists'].apply(lambda x: re.findall(r"'([^']*)'", x))
spotify_df['artists'].values[0]
"['Carl Woitschach']"
spotify_df['artists_upd_v1'].values[0][0]
'Carl Woitschach'

This looks good but did this work for every artist string format. Let's double check

spotify_df[spotify_df['artists_upd_v1'].apply(lambda x: not x)].head(5)
acousticness artists danceability duration_ms energy explicit id instrumentalness key liveness loudness mode name popularity release_date speechiness tempo valence year artists_upd_v1
127 0.995 ["Sam Manning's and His Cole Jazz Orchestra"] 0.664 173333 0.283 0 42WDMm9hX0xCFkkKpt6NOY 0.87400 8 0.109 -18.301 0 Bungo 0 1930-01-01 0.0807 99.506 0.688 1930 []
180 0.984 ["Scarlet D'Carpio"] 0.400 142443 0.190 0 4Gcc2YB0AAlzPLQhosdyAw 0.90000 0 0.182 -12.062 1 Chililin Uth'aja 0 1930 0.0492 81.290 0.402 1930 []
1244 0.506 ["Original Broadway Cast Of 'Flahooley"] 0.519 35227 0.475 0 1Qt9zpHUfVqMNr25EU9IFL 0.07100 7 0.103 -9.553 0 Prologue 0 1951-01-01 0.1070 105.639 0.615 1951 []
1478 0.809 ["Cal Tjader's Modern Mambo Quintet"] 0.795 238200 0.386 0 5VeW5QJDW906P5knRgJWzt 0.87400 1 0.106 -14.984 1 Dearly Beloved 2 1954-09-11 0.0570 119.800 0.807 1954 []
1944 0.804 ["Screamin' Jay Hawkins"] 0.574 142893 0.401 0 6MC85zBk1dQqnywRDdzy7h 0.00002 2 0.546 -11.185 1 I Love Paris 14 1958 0.0533 89.848 0.587 1958 []

So, it looks like it didn't catch all of them and you can quickly see that it's because artists with an apostrophe in their title and the fact that they are enclosed in a full quotes. I'll write another regex to handle this and then combine the two

spotify_df['artists_upd_v2'] = spotify_df['artists'].apply(lambda x: re.findall('\"(.*?)\"',x))
spotify_df['artists_upd'] = np.where(spotify_df['artists_upd_v1'].apply(lambda x: not x), spotify_df['artists_upd_v2'], spotify_df['artists_upd_v1'] )
spotify_df['artists_song'] = spotify_df.apply(lambda row: row['artists_upd'][0]+row['name'],axis = 1)
spotify_df.sort_values(['artists_song','release_date'], ascending = False, inplace = True)
spotify_df[spotify_df['name']=='Adore You']
acousticness artists danceability duration_ms energy explicit id instrumentalness key liveness loudness mode name popularity release_date speechiness tempo valence year artists_upd_v1 artists_upd_v2 artists_upd artists_song
97046 0.1110 ['Miley Cyrus'] 0.583 278747 0.655 0 5AnCLGg35ziFOloEnXK4uu 0.000004 0 0.113 -5.407 1 Adore You 70 2013-10-04 0.0315 119.759 0.201 2013 [Miley Cyrus] [] [Miley Cyrus] Miley CyrusAdore You
87868 0.0237 ['Harry Styles'] 0.676 207133 0.771 0 3jjujdWJ72nww5eGnfs2E7 0.000007 8 0.102 -3.675 1 Adore You 88 2019-12-13 0.0483 99.048 0.569 2019 [Harry Styles] [] [Harry Styles] Harry StylesAdore You
87883 0.0237 ['Harry Styles'] 0.676 207133 0.771 0 1M4qEo4HE3PRaCOM7EXNJq 0.000007 8 0.102 -3.675 1 Adore You 86 2019-12-06 0.0483 99.048 0.569 2019 [Harry Styles] [] [Harry Styles] Harry StylesAdore You
spotify_df.drop_duplicates('artists_song',inplace = True)
spotify_df[spotify_df['name']=='Adore You']
acousticness artists danceability duration_ms energy explicit id instrumentalness key liveness loudness mode name popularity release_date speechiness tempo valence year artists_upd_v1 artists_upd_v2 artists_upd artists_song
97046 0.1110 ['Miley Cyrus'] 0.583 278747 0.655 0 5AnCLGg35ziFOloEnXK4uu 0.000004 0 0.113 -5.407 1 Adore You 70 2013-10-04 0.0315 119.759 0.201 2013 [Miley Cyrus] [] [Miley Cyrus] Miley CyrusAdore You
87868 0.0237 ['Harry Styles'] 0.676 207133 0.771 0 3jjujdWJ72nww5eGnfs2E7 0.000007 8 0.102 -3.675 1 Adore You 88 2019-12-13 0.0483 99.048 0.569 2019 [Harry Styles] [] [Harry Styles] Harry StylesAdore You

Now I can explode this column and merge as I planned to in Step 2

artists_exploded = spotify_df[['artists_upd','id']].explode('artists_upd')
artists_exploded_enriched = artists_exploded.merge(data_w_genre, how = 'left', left_on = 'artists_upd',right_on = 'artists')
artists_exploded_enriched_nonnull = artists_exploded_enriched[~artists_exploded_enriched.genres_upd.isnull()]
artists_exploded_enriched_nonnull[artists_exploded_enriched_nonnull['id'] =='6KuQTIu1KoTTkLXKrwlLPV']
artists_upd id artists acousticness danceability duration_ms energy instrumentalness liveness loudness speechiness tempo valence popularity key mode count genres genres_upd
51108 Robert Schumann 6KuQTIu1KoTTkLXKrwlLPV Robert Schumann 0.98417 0.362023 212320.169960 0.105301 0.782029 0.160324 -22.831075 0.048055 98.447067 0.277442 3.723320 5.0 1.0 253.0 ['classical', 'early romantic era'] [classical, early_romantic_era]
51109 Vladimir Horowitz 6KuQTIu1KoTTkLXKrwlLPV Vladimir Horowitz 0.99007 0.343210 266541.125104 0.118844 0.879508 0.183812 -23.193418 0.043360 94.900679 0.225951 3.592378 1.0 1.0 1207.0 ['classical', 'classical performance', 'classi... [classical, classical_performance, classical_p...

Alright we're almost their, now we need to:

  1. Group by on the song id and essentially create lists lists
  2. Consilidate these lists and output the unique values
artists_genres_consolidated = artists_exploded_enriched_nonnull.groupby('id')['genres_upd'].apply(list).reset_index()
artists_genres_consolidated['consolidates_genre_lists'] = artists_genres_consolidated['genres_upd'].apply(lambda x: list(set(list(itertools.chain.from_iterable(x)))))
artists_genres_consolidated.head()
id genres_upd consolidates_genre_lists
0 000G1xMMuwxNHmwVsBdtj1 [[candy_pop, dance_rock, new_romantic, new_wav... [new_romantic, candy_pop, power_pop, permanent...
1 000ZxLGm7jDlWCHtcXSeBe [[boogie-woogie, piano_blues, ragtime, stride]] [piano_blues, ragtime, stride, boogie-woogie]
2 000jBcNljWTnyjB4YO7ojf [[]] []
3 000mGrJNc2GAgQdMESdgEc [[classical, late_romantic_era], [historic_orc... [historic_orchestral_performance, classical, o...
4 000u1dTg7y1XCDXi80hbBX [[country, country_road, country_rock]] [country_road, country_rock, country]
spotify_df = spotify_df.merge(artists_genres_consolidated[['id','consolidates_genre_lists']], on = 'id',how = 'left')

Feature Engineering

  • Normalize float variables
  • OHE Year and Popularity Variables
  • Create TF-IDF features off of artist genres
spotify_df.tail()
acousticness artists danceability duration_ms energy explicit id instrumentalness key liveness loudness mode name popularity release_date speechiness tempo valence year artists_upd_v1 artists_upd_v2 artists_upd artists_song consolidates_genre_lists
155464 0.0287 ["Livin' Joy", 'A. Manetta'] 0.704 215227 0.722 0 5cIU5GZBbyMfgfXGcoQVYc 0.00341 2 0.297 -10.815 0 Don't Stop Movin' - Radio Mix 56 1997-01-01 0.0446 129.992 0.859 1997 [ Joy", ] [Livin' Joy] [ Joy", ] Joy", Don't Stop Movin' - Radio Mix NaN
155465 0.0218 ["Lil' Flip", 'Lea'] 0.845 225187 0.346 0 3FaUH7ZMjW1hv9Jx6MIAIf 0.00000 0 0.135 -9.381 1 Sunshine (feat. Lea) 47 2004-03-30 0.1060 93.989 0.819 2004 [ Flip", ] [Lil' Flip] [ Flip", ] Flip", Sunshine (feat. Lea) NaN
155466 0.0516 ["Ol' Dirty Bastard", 'Kelis', 'Rich Travali'] 0.934 239547 0.459 1 6YYd5MLpu45J0uLrMdivF7 0.00000 1 0.222 -7.654 1 Got Your Money (feat. Kelis) 66 1999 0.1890 103.040 0.697 1999 [ Dirty Bastard", , , ] [Ol' Dirty Bastard] [ Dirty Bastard", , , ] Dirty Bastard", Got Your Money (feat. Kelis) NaN
155467 0.0249 ["World Class Wreckin' Cru", "Michel 'Le"] 0.715 351040 0.490 0 3hoiinUc5VA9xUEJID7R8V 0.00017 9 0.139 -9.504 0 Turn Off The Lights - Rap 35 1994-04-06 0.0479 129.309 0.429 1994 [ Cru", "Michel ] [World Class Wreckin' Cru, Michel 'Le] [ Cru", "Michel ] Cru", "Michel Turn Off The Lights - Rap NaN
155468 0.0113 ["Rappin' 4-Tay", 'MC Breed', 'Too $hort'] 0.897 337973 0.414 1 78859Af0fmA9VTlgnOHTAP 0.00011 4 0.101 -8.450 0 Never Talk Down 35 1996 0.2460 96.039 0.273 1996 [ 4-Tay", , , ] [Rappin' 4-Tay] [ 4-Tay", , , ] 4-Tay", Never Talk Down NaN
spotify_df['year'] = spotify_df['release_date'].apply(lambda x: x.split('-')[0])
float_cols = spotify_df.dtypes[spotify_df.dtypes == 'float64'].index.values
ohe_cols = 'popularity'
spotify_df['popularity'].describe()
count    155469.000000
mean         31.306987
std          21.422973
min           0.000000
25%          12.000000
50%          33.000000
75%          48.000000
max          97.000000
Name: popularity, dtype: float64
spotify_df['popularity_red'] = spotify_df['popularity'].apply(lambda x: int(x/5))
spotify_df['consolidates_genre_lists'] = spotify_df['consolidates_genre_lists'].apply(lambda d: d if isinstance(d, list) else [])
spotify_df.head()
acousticness artists danceability duration_ms energy explicit id instrumentalness key liveness loudness mode name popularity release_date speechiness tempo valence year artists_upd_v1 artists_upd_v2 artists_upd artists_song consolidates_genre_lists popularity_red
0 0.381 ['黑豹'] 0.353 316160 0.6860 0 3KIuCzckjdeeVuswPo20mC 0.000000 11 0.0568 -9.103 1 DON'T BREAK MY HEART 34 1992-12-22 0.0395 200.341 0.3520 1992 [黑豹] [] [黑豹] 黑豹DON'T BREAK MY HEART [chinese_indie, chinese_indie_rock] 6
1 0.978 ['黃蜀娟'] 0.153 156813 0.0581 0 7dkMnOK1h9I3D2NyDDjBfh 0.000939 10 0.1550 -23.697 1 輕煙濃霧 23 1968-02-28 0.0472 174.060 0.0904 1968 [黃蜀娟] [] [黃蜀娟] 黃蜀娟輕煙濃霧 [] 4
2 0.828 ['黃蜀娟'] 0.508 100133 0.2470 0 7ilXPF7IilGtVX4MMubQfQ 0.000000 3 0.2970 -14.241 1 踏雪尋梅 23 1968-02-28 0.1730 170.629 0.6800 1968 [黃蜀娟] [] [黃蜀娟] 黃蜀娟踏雪尋梅 [] 4
3 0.909 ['黃蜀娟'] 0.140 284040 0.1310 0 3enJcaHwRwN3ABPp3Bae35 0.000042 10 0.6190 -20.946 1 藍色的月光 23 1968-01-28 0.0455 82.543 0.1160 1968 [黃蜀娟] [] [黃蜀娟] 黃蜀娟藍色的月光 [] 4
4 0.944 ['黃蜀娟'] 0.604 173627 0.2100 0 6aewX7cGeXnZTK36bZRI6T 0.000007 0 0.2110 -17.312 1 薔薇之戀 23 1968-01-28 0.0395 105.531 0.5380 1968 [黃蜀娟] [] [黃蜀娟] 黃蜀娟薔薇之戀 [] 4
#this gets passed later on
def ohe_prep(df, column, new_name): 
    """ 
    Create One Hot Encoded features of a specific column

    Parameters: 
        df (pandas dataframe): Spotify Dataframe
        column (str): Column to be processed
        new_name (str): new column name to be used
        
    Returns: 
        tf_df: One hot encoded features 
    """
    
    tf_df = pd.get_dummies(df[column])
    feature_names = tf_df.columns
    tf_df.columns = [new_name + "|" + str(i) for i in feature_names]
    tf_df.reset_index(drop = True, inplace = True)    
    return tf_df
from IPython.display import Image
Image("/Users/thakm004/Documents/Spotify/tfidf_4.png")
def create_feature_set(df, float_cols):
    """ 
    Process spotify df to create a final set of features that will be used to generate recommendations

    Parameters: 
        df (pandas dataframe): Spotify Dataframe
        float_cols (list(str)): List of float columns that will be scaled 
        
    Returns: 
        final: final set of features 
    """
    
    #tfidf genre lists
    tfidf = TfidfVectorizer()
    tfidf_matrix =  tfidf.fit_transform(df['consolidates_genre_lists'].apply(lambda x: " ".join(x)))
    genre_df = pd.DataFrame(tfidf_matrix.toarray())
    genre_df.columns = ['genre' + "|" + i for i in tfidf.get_feature_names()]
    genre_df.reset_index(drop = True, inplace=True)

    #explicity_ohe = ohe_prep(df, 'explicit','exp')    
    year_ohe = ohe_prep(df, 'year','year') * 0.5
    popularity_ohe = ohe_prep(df, 'popularity_red','pop') * 0.15

    #scale float columns
    floats = df[float_cols].reset_index(drop = True)
    scaler = MinMaxScaler()
    floats_scaled = pd.DataFrame(scaler.fit_transform(floats), columns = floats.columns) * 0.2

    #concanenate all features
    final = pd.concat([genre_df, floats_scaled, popularity_ohe, year_ohe], axis = 1)
     
    #add song id
    final['id']=df['id'].values
    
    return final
complete_feature_set = create_feature_set(spotify_df, float_cols=float_cols)#.mean(axis = 0)
complete_feature_set.head()
genre|432hz genre|_hip_hop genre|a_cappella genre|abstract genre|abstract_beats genre|abstract_hip_hop genre|accordeon genre|accordion genre|acid_house genre|acid_jazz genre|acid_rock genre|acid_trance genre|acousmatic genre|acoustic genre|acoustic_blues genre|acoustic_pop genre|acoustic_punk genre|adoracion genre|adult_standards genre|adventista genre|afghan_pop genre|african_gospel genre|african_percussion genre|african_reggae genre|african_rock genre|afro genre|afro_dancehall genre|afro_house genre|afro_psych genre|afrobeat genre|afrobeat_brasileiro genre|afrofuturism genre|afrofuturismo_brasileiro genre|afropop genre|afroswing genre|aggrotech genre|ahead_jazz genre|alabama_indie genre|alabama_metal genre|alabama_rap genre|albanian_pop genre|alberta_country genre|alberta_hip_hop genre|album_rock genre|albuquerque_indie genre|alt genre|alternative_americana genre|alternative_country genre|alternative_dance genre|alternative_emo genre|alternative_hip_hop genre|alternative_metal genre|alternative_pop genre|alternative_pop_rock genre|alternative_r genre|alternative_rock genre|alternative_roots_rock genre|ambeat genre|ambient genre|ambient_black_metal genre|ambient_folk genre|ambient_house genre|ambient_idm genre|ambient_pop genre|ambient_techno genre|ambient_worship genre|american_choir genre|american_contemporary_classical genre|american_folk_revival genre|american_metalcore genre|american_modern_classical genre|american_post genre|american_primitive genre|american_romanticism genre|american_shoegaze genre|anadolu_rock genre|anarcho genre|and genre|andean genre|anglican_liturgy genre|animal_singing genre|anime genre|anime_latino genre|anime_rock genre|anime_score genre|ann_arbor_indie genre|anthem_emo genre|anthem_worship genre|anti genre|antilliaanse_folklore genre|antiviral_pop genre|appalachian_folk genre|arab_folk genre|arab_groove genre|arab_pop genre|arab_trap genre|arabesk genre|arabic_hip_hop genre|arabic_jazz genre|argentine_ambient genre|argentine_hardcore genre|argentine_heavy_metal genre|argentine_hip_hop genre|argentine_indie genre|argentine_metal genre|argentine_punk genre|argentine_reggae genre|argentine_rock genre|arkansas_country genre|arkansas_indie genre|armenian_folk genre|art_pop genre|art_punk genre|art_rock genre|asbury_park_indie genre|asian_american_hip_hop genre|asmr genre|athens_indie genre|atl_hip_hop genre|atl_trap genre|atlanta_indie genre|atmosphere genre|atmospheric_black_metal genre|atmospheric_dnb genre|atmospheric_post genre|atmospheric_sludge genre|auckland_indie genre|audiophile_vocal genre|aussietronica genre|austin_americana genre|austin_hip_hop genre|austin_singer genre|austindie genre|australian_alternative_pop genre|australian_alternative_rock genre|australian_choir genre|australian_country genre|australian_dance genre|australian_electropop genre|australian_garage_punk genre|australian_hip_hop genre|australian_house genre|australian_indie genre|australian_indie_folk genre|australian_indie_rock genre|australian_indigenous genre|australian_metal genre|australian_metalcore genre|australian_pop genre|australian_post genre|australian_psych genre|australian_r genre|australian_reggae_fusion genre|australian_rock genre|australian_singer genre|australian_ska genre|australian_talent_show genre|australian_trap genre|australian_underground_hip_hop genre|austrian_choir genre|austrian_pop genre|austro genre|autoharp genre|autonomous_black_metal genre|autore genre|avant genre|axe genre|azeri_traditional genre|azonto genre|azontobeats genre|b_en_espanol genre|bachata genre|background_music genre|bahamian_folk genre|bahamian_pop genre|baiao genre|baile_pop genre|bakersfield_sound genre|balearic genre|balkan_brass genre|ballet_class genre|ballroom genre|baltic_classical genre|baltimore_hip_hop genre|baltimore_indie genre|banda genre|banda_caliente genre|banda_carnavalera genre|bandinhas genre|bandoneon genre|bangla genre|banjo genre|bansuri genre|barbadian_pop genre|barbershop genre|bard genre|barnmusik genre|baroque genre|baroque_ensemble genre|baroque_pop genre|baroque_singing genre|baroque_violin genre|bass_house genre|bass_music genre|bass_trap genre|basshall genre|bassline genre|bath_indie genre|baton_rouge_indie genre|baton_rouge_rap genre|battle_rap genre|bay_area_hip_hop genre|bay_area_indie genre|bboy genre|bc_underground_hip_hop genre|beach_music genre|beat genre|beat_italiano genre|beat_poetry genre|beatboxing genre|beatlesque genre|bebop genre|bedroom_pop genre|bedroom_soul genre|belarusian_indie genre|belarusian_pop genre|belarusian_rock genre|belgian_contemporary_classical genre|belgian_dance genre|belgian_edm genre|belgian_indie genre|belgian_indie_rock genre|belgian_jazz genre|belgian_new_wave genre|belgian_pop genre|belgian_rock genre|belgian_singer genre|belly_dance genre|bengali_folk genre|beninese_pop genre|bergen_indie genre|berlin_school genre|bhangra genre|big_band genre|big_beat genre|big_room genre|binaural genre|birmingham_grime genre|birmingham_hip_hop genre|birmingham_metal genre|bitpop genre|black_comedy genre|black_metal genre|black_thrash genre|blackened_crust genre|blackgaze genre|bleep_techno genre|bluegrass genre|bluegrass_gospel genre|blues genre|blues_latinoamericano genre|blues_rock genre|bmore genre|bohemian_baroque genre|bolero genre|bolero_cubano genre|boogaloo genre|boogie genre|boom_bap genre|bop genre|bossa_nova genre|bossa_nova_jazz genre|boston_hardcore genre|boston_hip_hop genre|boston_indie genre|boston_metal genre|boston_punk genre|boston_rock genre|bounce genre|bouncy_house genre|bouzouki genre|bow_pop genre|boy_band genre|boy_pop genre|boy_soprano genre|brain_waves genre|braindance genre|brass_band genre|brass_ensemble genre|brass_quintet genre|brazilian_boogie genre|brazilian_composition genre|brazilian_edm genre|brazilian_hip_hop genre|brazilian_indie genre|brazilian_jazz genre|brazilian_metal genre|brazilian_modern_jazz genre|brazilian_percussion genre|brazilian_psychedelic genre|brazilian_punk genre|brazilian_punk_rock genre|brazilian_reggae genre|brazilian_rock genre|brazilian_ska genre|brazilian_soul genre|brazilian_thrash_metal genre|breakbeat genre|breakcore genre|brega genre|breton_folk genre|brighton_indie genre|brill_building_pop genre|brisbane_indie genre|bristol_electronic genre|bristol_indie genre|brit_funk genre|british_alternative_rock genre|british_black_metal genre|british_blues genre|british_brass_band genre|british_choir genre|british_comedy genre|british_contemporary_classical genre|british_dance_band genre|british_experimental genre|british_folk genre|british_indie_rock genre|british_industrial genre|british_invasion genre|british_jazz genre|british_modern_classical genre|british_post genre|british_singer genre|british_soul genre|british_soundtrack genre|britpop genre|broadway genre|broken_beat genre|bronx_hip_hop genre|brooklyn_indie genre|brostep genre|brutal_death_metal genre|brutal_deathcore genre|bubble_trance genre|bubblegum_dance genre|bubblegum_pop genre|buffalo_ny_indie genre|buffalo_ny_metal genre|bulgarian_folk genre|burmese_traditional genre|bush_ballad genre|c86 genre|cabaret genre|cajun genre|calgary_indie genre|cali_rap genre|calming_instrumental genre|calypso genre|cambodian_rock genre|cambridge_choir genre|cambridgeshire_indie genre|canadian_americana genre|canadian_blues genre|canadian_ccm genre|canadian_celtic genre|canadian_choir genre|canadian_classical genre|canadian_comedy genre|canadian_contemporary_country genre|canadian_contemporary_r genre|canadian_country genre|canadian_electronic genre|canadian_electropop genre|canadian_experimental genre|canadian_folk genre|canadian_hardcore genre|canadian_hip_hop genre|canadian_house genre|canadian_indie genre|canadian_indie_folk genre|canadian_indigenous genre|canadian_latin genre|canadian_metal genre|canadian_metalcore genre|canadian_modern_jazz genre|canadian_pop genre|canadian_pop_punk genre|canadian_post genre|canadian_psychedelic genre|canadian_punk genre|canadian_rock genre|canadian_rockabilly genre|canadian_singer genre|canadian_soundtrack genre|cancion_infantil_mexicana genre|cancion_melodica genre|candomble genre|candy_pop genre|cantautor genre|cante_flamenco genre|canterbury_scene genre|canto_popular_uruguayo genre|cantopop genre|canzone_genovese genre|canzone_napoletana genre|cape_breton_folk genre|cape_town_indie genre|cape_verdean_folk genre|carnatic genre|carnatic_instrumental genre|carnatic_vocal genre|cartoon genre|cathedral_choir genre|catstep genre|ccm genre|cedm genre|cello genre|celtic genre|celtic_harp genre|celtic_metal genre|celtic_punk genre|celtic_rock genre|cha genre|chakra genre|chamber_choir genre|chamber_folk genre|chamber_orchestra genre|chamber_pop genre|chamber_psych genre|champeta genre|channel_islands_indie genre|channel_pop genre|chanson genre|chanson_paillarde genre|chaotic_hardcore genre|charanga genre|charlotte_nc_indie genre|charlottesville_indie genre|chattanooga_indie genre|chicago_blues genre|chicago_drill genre|chicago_hardcore genre|chicago_house genre|chicago_indie genre|chicago_pop_punk genre|chicago_punk genre|chicago_rap genre|chicago_soul genre|chicano_punk genre|chicano_rap genre|chicha genre|chihuahua_indie genre|children genre|chilean_hardcore genre|chilean_indie genre|chilean_rock genre|chill_beats genre|chill_guitar genre|chill_lounge genre|chillhop genre|chillstep genre|chillwave genre|chinese_audiophile genre|chinese_classical genre|chinese_classical_performance genre|chinese_electropop genre|chinese_folk genre|chinese_hip_hop genre|chinese_idol_pop genre|chinese_indie genre|chinese_indie_rock genre|chinese_instrumental genre|chinese_jazz genre|chinese_soundtrack genre|chinese_traditional genre|chiptune genre|chopped_and_screwed genre|choral genre|choro genre|christchurch_indie genre|christian_a_cappella genre|christian_alternative_rock genre|christian_dance genre|christian_hard_rock genre|christian_hardcore genre|christian_hip_hop genre|christian_indie genre|christian_metal genre|christian_music genre|christian_pop genre|christian_power_metal genre|christian_punk genre|christian_relaxative genre|christian_rock genre|christian_trap genre|christian_uplift genre|christmas_instrumental genre|chunchaca genre|chutney genre|cincinnati_indie genre|cinematic_post genre|circuit genre|circus genre|classic_afrobeat genre|classic_arab_pop genre|classic_australian_country genre|classic_belgian_pop genre|classic_bollywood genre|classic_canadian_rock genre|classic_cantopop genre|classic_colombian_pop genre|classic_country_pop genre|classic_czech_pop genre|classic_danish_pop genre|classic_eurovision genre|classic_finnish_pop genre|classic_finnish_rock genre|classic_french_pop genre|classic_garage_rock genre|classic_girl_group genre|classic_greek_pop genre|classic_hardstyle genre|classic_icelandic_pop genre|classic_iskelma genre|classic_israeli_pop genre|classic_italian_folk_pop genre|classic_italian_pop genre|classic_j genre|classic_japanese_jazz genre|classic_korean_pop genre|classic_mandopop genre|classic_norwegian_pop genre|classic_opm genre|classic_pakistani_pop genre|classic_persian_pop genre|classic_peruvian_pop genre|classic_polish_pop genre|classic_praise genre|classic_progressive_house genre|classic_psychedelic_rock genre|classic_rock genre|classic_russian_pop genre|classic_russian_rock genre|classic_schlager genre|classic_soul genre|classic_soundtrack genre|classic_swedish_pop genre|classic_thai_pop genre|classic_turkish_pop genre|classic_uk_pop genre|classic_venezuelan_pop genre|classical genre|classical_accordion genre|classical_baritone genre|classical_bass genre|classical_cello genre|classical_clarinet genre|classical_contralto genre|classical_countertenor genre|classical_era genre|classical_flute genre|classical_guitar genre|classical_guitar_quartet genre|classical_harp genre|classical_horn genre|classical_mandolin genre|classical_mezzo genre|classical_oboe genre|classical_organ genre|classical_performance genre|classical_piano genre|classical_piano_duo genre|classical_piano_trio genre|classical_saxophone genre|classical_soprano genre|classical_tenor genre|classical_trumpet genre|classify genre|clawhammer_banjo genre|clean_comedy genre|coco genre|collage_pop genre|college_a_cappella genre|college_marching_band genre|colombian_hip_hop genre|colombian_pop genre|colombian_rock genre|columbus_ohio_indie genre|comedienne genre|comedy genre|comedy_rap genre|comedy_rock genre|comic genre|comic_metal genre|complextro genre|compositional_ambient genre|concepcion_indie genre|concert_band genre|concertina genre|connecticut_hardcore genre|connecticut_indie genre|conscious_hip_hop genre|contemporary_classical genre|contemporary_classical_piano genre|contemporary_country genre|contemporary_folk genre|contemporary_gospel genre|contemporary_jazz genre|contemporary_post genre|contemporary_vocal_jazz genre|contrabass genre|cook_islands_pop genre|cool_jazz genre|copla genre|cornwall_indie genre|corrido genre|corridos_tumbados genre|corrosion genre|cosmic_american genre|cosmic_post genre|country genre|country_blues genre|country_boogie genre|country_dawn genre|country_gospel genre|country_pop genre|country_rap genre|country_road genre|country_rock genre|coverchill genre|cowboy_western genre|cowpunk genre|crack_rock_steady genre|croatian_folk genre|croatian_pop genre|croatian_rock genre|crossover_thrash genre|crunk genre|crust_punk genre|cuarteto genre|cuatro_venezolano genre|cuban_alternative genre|cuban_rumba genre|cuban_traditional genre|cubaton genre|cumbia genre|cumbia_andina_mexicana genre|cumbia_chilena genre|cumbia_ecuatoriana genre|cumbia_funk genre|cumbia_lagunera genre|cumbia_paraguaya genre|cumbia_peruana genre|cumbia_pop genre|cumbia_ranchera genre|cumbia_salvadorena genre|cumbia_santafesina genre|cumbia_sonidera genre|cumbia_villera genre|cyberpunk genre|cymraeg genre|cypriot_pop genre|czech_contemporary_classical genre|czech_folk genre|czech_hip_hop genre|czech_rock genre|czsk_hip_hop genre|dabke genre|dakke_dak genre|dallas_indie genre|dance genre|dance_pop genre|dance_rock genre|dancehall genre|dangdut genre|danish_classical genre|danish_electronic genre|danish_electropop genre|danish_hip_hop genre|danish_jazz genre|danish_metal genre|danish_pop genre|danish_pop_rock genre|danish_post genre|danish_rock genre|danish_singer genre|dansband genre|danseband genre|dansktop genre|danspunk genre|dark_cabaret genre|dark_disco genre|dark_jazz genre|dark_post genre|dark_techno genre|dark_trap genre|dark_wave genre|darksynth genre|dayton_indie genre|dc_hardcore genre|dc_indie genre|death_metal genre|deathcore genre|deathgrass genre|deathgrind genre|deathrash genre|deathrock genre|deathstep genre|deep_acoustic_pop genre|deep_adult_standards genre|deep_big_room genre|deep_ccm genre|deep_christian_rock genre|deep_classic_garage_rock genre|deep_comedy genre|deep_contemporary_country genre|deep_cumbia_sonidera genre|deep_dance_pop genre|deep_delta_blues genre|deep_disco genre|deep_disco_house genre|deep_dnb genre|deep_east_coast_hip_hop genre|deep_euro_house genre|deep_free_jazz genre|deep_freestyle genre|deep_funk genre|deep_g_funk genre|deep_gothic_post genre|deep_groove_house genre|deep_house genre|deep_idm genre|deep_indian_pop genre|deep_indie_singer genre|deep_latin_alternative genre|deep_latin_christian genre|deep_melodic_euro_house genre|deep_melodic_metalcore genre|deep_minimal_techno genre|deep_motown genre|deep_new_americana genre|deep_new_wave genre|deep_norteno genre|deep_northern_soul genre|deep_pop_edm genre|deep_pop_r genre|deep_psychobilly genre|deep_punk_rock genre|deep_r genre|deep_ragga genre|deep_regional_mexican genre|deep_smooth_jazz genre|deep_soft_rock genre|deep_soul_house genre|deep_soundtrack genre|deep_southern_soul genre|deep_southern_trap genre|deep_talent_show genre|deep_tech_house genre|deep_tropical_house genre|deep_underground_hip_hop genre|deep_uplifting_trance genre|delta_blues genre|dembow genre|denpa genre|denton_tx_indie genre|denver_indie genre|derby_indie genre|desert_blues genre|desi_hip_hop genre|desi_pop genre|destroy_techno genre|detroit_hip_hop genre|detroit_house genre|detroit_techno genre|detroit_trap genre|detske_pisnicky genre|detskie_pesni genre|devon_indie genre|dfw_rap genre|dhrupad genre|digital_hardcore genre|dinner_jazz genre|dirty_south_rap genre|dirty_texas_rap genre|disco genre|disco_house genre|disco_soul genre|disney genre|diva_house genre|division genre|dixieland genre|diy_emo genre|djent genre|dmv_rap genre|dominican_pop genre|doo genre|doom_metal genre|doujin genre|downtempo genre|drama genre|dream_pop genre|dream_trance genre|dreamgaze genre|dreamo genre|drift genre|drill genre|drill_and_bass genre|driving_country genre|drone genre|drone_ambient genre|drone_folk genre|drone_metal genre|drum_and_bass genre|dub genre|dub_metal genre|dub_poetry genre|dub_techno genre|dubstep genre|duduk genre|duluth_indie genre|dunedin_indie genre|dunedin_sound genre|dungeon_synth genre|duranguense genre|dusseldorf_electronic genre|dutch_blues genre|dutch_cabaret genre|dutch_death_metal genre|dutch_edm genre|dutch_folk genre|dutch_hip_hop genre|dutch_house genre|dutch_indie genre|dutch_metal genre|dutch_pop genre|dutch_prog genre|dutch_rock genre|dutch_trance genre|dutch_trap_pop genre|e6fi genre|early_avant_garde genre|early_modern_classical genre|early_music genre|early_music_choir genre|early_music_ensemble genre|early_reggae genre|early_romantic_era genre|early_synthpop genre|early_us_punk genre|east_coast_hip_hop genre|east_coast_reggae genre|eastern_bloc_groove genre|easy_listening genre|easycore genre|eau_claire_indie genre|ebm genre|ecm genre|ectofolk genre|ecuadorian_pop genre|edm genre|edmonton_indie genre|egyptian_pop genre|egyptian_traditional genre|el_paso_indie genre|electra genre|electric_bass genre|electric_blues genre|electro genre|electro_house genre|electro_jazz genre|electro_latino genre|electro_swing genre|electroclash genre|electrofox genre|electronic_djent genre|electronic_rock genre|electronic_trap genre|electronica genre|electronica_argentina genre|electropop genre|electropowerpop genre|emo genre|emo_punk genre|emo_rap genre|emocore genre|english_baroque genre|english_indie_rock genre|english_renaissance genre|enka genre|enredo genre|entehno genre|environmental genre|epic_doom genre|epicore genre|erhu genre|escape_room genre|esperanto genre|essex_indie genre|estonian_hip_hop genre|estonian_pop genre|ethereal_wave genre|etherpop genre|ethio genre|ethiopian_pop genre|ethnomusicology genre|euphoric_hardstyle genre|eurobeat genre|eurodance genre|europop genre|euroska genre|eurovision genre|exotica genre|experimental genre|experimental_ambient genre|experimental_big_band genre|experimental_folk genre|experimental_hip_hop genre|experimental_house genre|experimental_jazz genre|experimental_poetry genre|experimental_pop genre|experimental_rock genre|experimental_vocal genre|fado genre|family_gospel genre|faroese_pop genre|fast_melodic_punk genre|fi genre|fi_beats genre|fi_chill genre|fi_house genre|fidget_house genre|fijian_pop genre|filmi genre|filter_house genre|filthstep genre|final_fantasy genre|fingerstyle genre|finnish_alternative_rock genre|finnish_classical genre|finnish_contemporary_classical genre|finnish_death_metal genre|finnish_edm genre|finnish_hard_rock genre|finnish_metal genre|finnish_power_metal genre|finnish_soul genre|flamenco genre|flamenco_guitar genre|flick_hop genre|float_house genre|florida_death_metal genre|florida_rap genre|fluxwork genre|fo_jing genre|focus genre|focus_beats genre|folclor_afrocolombiano genre|folclor_colombiano genre|folclore_extremeno genre|folclore_navarra genre|folk genre|folk_metal genre|folk_punk genre|folk_rock genre|folk_rock_italiano genre|folklore_argentino genre|folklore_ecuatoriano genre|folklore_peruano genre|folklore_venezolano genre|folkmusik genre|folktronica genre|footwork genre|forro genre|forro_tradicional genre|fort_worth_indie genre|fourth_world genre|francoton genre|frankfurt_electronic genre|freak_folk genre|freakbeat genre|free_folk genre|free_improvisation genre|free_jazz genre|freestyle genre|fremantle_indie genre|french_baroque genre|french_death_metal genre|french_hip_hop genre|french_indie_pop genre|french_indietronica genre|french_jazz genre|french_metal genre|french_movie_tunes genre|french_opera genre|french_pop genre|french_reggae genre|french_rock genre|french_shoegaze genre|french_soundtrack genre|french_techno genre|funana genre|funeral_doom genre|funk genre|funk_carioca genre|funk_das_antigas genre|funk_metal genre|funk_ostentacao genre|funk_rock genre|funky_breaks genre|funky_tech_house genre|future_funk genre|future_garage genre|future_house genre|future_rock genre|futurepop genre|g_funk genre|gabba genre|gabonese_pop genre|gaian_doom genre|gainesville_indie genre|gaita_zuliana genre|galante_era genre|gamelan genre|gaming_edm genre|gangster_rap genre|garage_pop genre|garage_psych genre|garage_punk genre|garage_punk_blues genre|garage_rock genre|garage_rock_revival genre|garde genre|garde_jazz genre|garde_metal genre|gauze_pop genre|gbvfi genre|geek_folk genre|geek_rock genre|german_alternative_rock genre|german_baroque genre|german_choir genre|german_country genre|german_dance genre|german_hard_rock genre|german_house genre|german_jazz genre|german_literature genre|german_metal genre|german_modernism genre|german_oi genre|german_opera genre|german_pop genre|german_pop_rock genre|german_punk genre|german_reggae genre|german_renaissance genre|german_rock genre|german_show_tunes genre|german_soundtrack genre|german_techno genre|german_thrash_metal genre|german_underground_rap genre|ghanaian_hip_hop genre|ghanaian_traditional genre|ghazal genre|ghent_indie genre|girl_group genre|glam_metal genre|glam_punk genre|glam_rock genre|glee_club genre|glitch genre|glitch_hop genre|glitch_pop genre|go genre|gospel genre|gospel_blues genre|gospel_italiano genre|gospel_r genre|gospel_rap genre|gospel_reggae genre|gospel_singers genre|gothabilly genre|gothenburg_indie genre|gothenburg_metal genre|gothic_alternative genre|gothic_americana genre|gothic_metal genre|gothic_post genre|gothic_rock genre|gothic_symphonic_metal genre|gqom genre|grand_rapids_indie genre|grave_wave genre|graz_indie genre|greek_clarinet genre|greek_contemporary_classical genre|greek_folk genre|greek_guitar genre|greek_pop genre|greek_swing genre|grime genre|grindcore genre|griot genre|groove_metal genre|groove_room genre|grunge genre|grunge_pop genre|grupera genre|gruperas_inmortales genre|guadalajara_indie genre|guam_indie genre|guaracha genre|guatemalan_pop genre|guidance genre|guinean_pop genre|guitar_case genre|guitarra_argentina genre|guitarra_portuguesa genre|gurdy genre|guzheng genre|gymcore genre|gypsy genre|gypsy_jazz genre|gypsy_punk genre|haitian_traditional genre|halifax_indie genre|halloween genre|hamburg_electronic genre|hammered_dulcimer genre|hammond_organ genre|hands_up genre|hangpan genre|happy_hardcore genre|hard_alternative genre|hard_bop genre|hard_rock genre|hard_rock_brasileiro genre|hardcore genre|hardcore_hip_hop genre|hardcore_punk genre|hardcore_techno genre|hardstyle genre|hardvapour genre|harlem_hip_hop genre|harmonica_blues genre|harmonica_jazz genre|harp genre|harpsichord genre|hauntology genre|hawaiian genre|hawaiian_hip_hop genre|hawaiian_indie genre|healing genre|heartland_rock genre|heavy_alternative genre|hi genre|highlife genre|hindustani_classical genre|hindustani_instrumental genre|hindustani_vocal genre|hip_hop genre|hip_hop_cubano genre|hip_house genre|hip_pop genre|histoire_pour_enfants genre|historic_classical_performance genre|historic_orchestral_performance genre|historic_piano_performance genre|historic_string_quartet genre|historical_keyboard genre|historically_informed_performance genre|hmong_pop genre|hoerspiel genre|hokkien_pop genre|hollywood genre|hong_kong_hip_hop genre|hong_kong_indie genre|hong_kong_rock genre|honky genre|honky_tonk genre|hopebeat genre|horror_punk genre|horror_synth genre|horrorcore genre|house genre|houston_rap genre|huapango genre|huayno genre|hula genre|hungarian_contemporary_classical genre|hurdy genre|hyperpop genre|hyphy genre|icelandic_classical genre|icelandic_electronic genre|icelandic_experimental genre|icelandic_folk genre|icelandic_indie genre|icelandic_pop genre|icelandic_rock genre|idaho_indie genre|idol genre|idol_rock genre|ilahiler genre|ilocano_pop genre|impressionism genre|indian_classical genre|indian_edm genre|indian_folk genre|indian_indie genre|indian_jazz genre|indian_violin genre|indie genre|indie_anthem genre|indie_cafe_pop genre|indie_dream_pop genre|indie_electropop genre|indie_emo genre|indie_folk genre|indie_game_soundtrack genre|indie_garage_rock genre|indie_jazz genre|indie_pop genre|indie_pop_rap genre|indie_poptimism genre|indie_psych genre|indie_punk genre|indie_quebecois genre|indie_r genre|indie_rock genre|indie_rockism genre|indie_shoegaze genre|indie_singer genre|indie_soul genre|indie_surf genre|indie_triste genre|indiecoustica genre|indietronica genre|indonesian_alternative_rock genre|indonesian_hip_hop genre|indonesian_indie genre|indonesian_pop genre|indonesian_r genre|indonesian_worship genre|indorock genre|industrial genre|industrial_hip_hop genre|industrial_metal genre|industrial_rock genre|indy_indie genre|instrumental_acoustic_guitar genre|instrumental_bluegrass genre|instrumental_funk genre|instrumental_grime genre|instrumental_math_rock genre|instrumental_post genre|instrumental_progressive_metal genre|instrumental_rock genre|instrumental_soul genre|instrumental_stoner_rock genre|instrumental_surf genre|intelligent_dance_music genre|inuit_traditional genre|iowa_indie genre|iraqi_pop genre|irish_accordion genre|irish_ballad genre|irish_banjo genre|irish_classical genre|irish_country genre|irish_dance genre|irish_electronic genre|irish_fiddle genre|irish_folk genre|irish_hip_hop genre|irish_indie genre|irish_metal genre|irish_pop genre|irish_pub_song genre|irish_rock genre|irish_singer genre|islamic_recitation genre|isle_of_wight_indie genre|israeli_classical genre|israeli_folk genre|israeli_hip_hop genre|israeli_mediterranean genre|israeli_pop genre|israeli_rock genre|israeli_singer genre|italian_arena_pop genre|italian_baritone genre|italian_baroque genre|italian_bass genre|italian_contemporary_jazz genre|italian_disco genre|italian_gothic genre|italian_gothic_metal genre|italian_jazz genre|italian_library_music genre|italian_mandolin genre|italian_metal genre|italian_mezzo genre|italian_opera genre|italian_pop genre|italian_pop_rock genre|italian_power_metal genre|italian_progressive_rock genre|italian_renaissance genre|italian_soprano genre|italian_soundtrack genre|italian_techno genre|italian_tenor genre|italo_dance genre|italo_house genre|jacksonville_indie genre|jam_band genre|jamgrass genre|jamtronica genre|jangle_pop genre|japanese_alternative_rock genre|japanese_chillhop genre|japanese_city_pop genre|japanese_classical genre|japanese_classical_performance genre|japanese_dream_pop genre|japanese_electronic genre|japanese_electropop genre|japanese_emo genre|japanese_experimental genre|japanese_folk genre|japanese_garage_rock genre|japanese_girl_punk genre|japanese_heavy_metal genre|japanese_idm genre|japanese_indie_rock genre|japanese_instrumental genre|japanese_jazz genre|japanese_jazztronica genre|japanese_metalcore genre|japanese_new_wave genre|japanese_pop_punk genre|japanese_post genre|japanese_power_metal genre|japanese_psychedelic genre|japanese_punk_rock genre|japanese_r genre|japanese_rockabilly genre|japanese_singer genre|japanese_soundtrack genre|japanese_traditional genre|japanese_vgm genre|japanese_vocal_jazz genre|jawaiian genre|jazz genre|jazz_accordion genre|jazz_blues genre|jazz_boom_bap genre|jazz_brass genre|jazz_chileno genre|jazz_clarinet genre|jazz_cubano genre|jazz_double_bass genre|jazz_drums genre|jazz_flute genre|jazz_funk genre|jazz_fusion genre|jazz_guitar genre|jazz_harp genre|jazz_metal genre|jazz_mexicano genre|jazz_orchestra genre|jazz_organ genre|jazz_piano genre|jazz_quartet genre|jazz_rap genre|jazz_rock genre|jazz_saxophone genre|jazz_trio genre|jazz_trombone genre|jazz_trumpet genre|jazz_tuba genre|jazz_venezolano genre|jazz_vibraphone genre|jazz_violin genre|jazztronica genre|jewish_cantorial genre|jewish_hip_hop genre|jig_and_reel genre|jordanian_pop genre|joropo genre|jovem_guarda genre|jug_band genre|juju genre|jump_blues genre|jump_up genre|kabarett genre|kabyle genre|kaneka genre|kannada_bhava_geethe genre|karadeniz_halk_muzigi genre|kashmiri_pop genre|kawaii_future_bass genre|kawaii_metal genre|kayokyoku genre|kc_indie genre|kei genre|kent_indie genre|kentucky_indie genre|kentucky_metal genre|kentucky_mountain_folk genre|keroncong genre|key_guitar genre|khmer genre|kids_dance_party genre|kindermusik genre|kindie_rock genre|kingston_on_indie genre|kirtan genre|kiwi_rock genre|kizomba genre|kleine_hoerspiel genre|klezmer genre|knoxville_indie genre|kodomo_no_ongaku genre|kolsche_karneval genre|komedi genre|kompa genre|kora genre|korean_classical_performance genre|korean_indie_rock genre|korean_ost genre|korean_pop genre|korean_r genre|korean_trap genre|koto genre|krautrock genre|kundiman genre|kwaito_house genre|la_indie genre|la_pop genre|laboratorio genre|lafayette_indie genre|laiko genre|lancaster_pa_indie genre|language genre|late_romantic_era genre|latin genre|latin_afrobeat genre|latin_alternative genre|latin_arena_pop genre|latin_christian genre|latin_classical genre|latin_funk genre|latin_hip_hop genre|latin_house genre|latin_jazz genre|latin_metal genre|latin_pop genre|latin_rock genre|latin_ska genre|latin_soundtrack genre|latin_talent_show genre|latin_viral_pop genre|latin_worship genre|latincore genre|latino_comedy genre|latintronica genre|lds genre|lds_youth genre|lebanese_pop genre|leicester_indie genre|levenslied genre|lexington_ky_indie genre|lgbtq genre|library_music genre|liedermacher genre|light_music genre|lilith genre|liquid_funk genre|lithuanian_folk genre|liverpool_indie genre|livetronica genre|lldm genre|lo genre|lo_star genre|london_rap genre|louisiana_blues genre|louisiana_metal genre|louisville_indie genre|lounge genre|louvor genre|lovers_rock genre|luk_thung genre|lullaby genre|lund_indie genre|lute genre|madchester genre|magyar genre|magyar_alternative genre|maine_indie genre|mainland_chinese_pop genre|makossa genre|malaysian_indie genre|malaysian_mandopop genre|malaysian_pop genre|malian_blues genre|mallet genre|malmo_indie genre|mambo genre|manchester_hip_hop genre|manchester_indie genre|mande_pop genre|mandolin genre|mandopop genre|mangue_bit genre|manila_sound genre|manitoba_indie genre|mantra genre|marathi_pop genre|marching_band genre|mariachi genre|mariachi_cristiano genre|marimba_orquesta genre|martial_industrial genre|mashup genre|math_rock genre|mathcore genre|mbalax genre|medieval genre|medieval_folk genre|medieval_rock genre|meditation genre|melancholia genre|melbourne_bounce genre|melbourne_bounce_international genre|melbourne_indie genre|mellow_gold genre|melodic_death_metal genre|melodic_deathcore genre|melodic_dubstep genre|melodic_groove_metal genre|melodic_hard_rock genre|melodic_hardcore genre|melodic_metal genre|melodic_metalcore genre|melodic_rap genre|melodic_thrash genre|meme_rap genre|memphis_americana genre|memphis_blues genre|memphis_hip_hop genre|memphis_soul genre|mento genre|merengue genre|merengue_tipico genre|merseybeat genre|messianic_praise genre|metal genre|metal_guitar genre|metalcore genre|metropopolis genre|mex genre|mexican_classic_rock genre|mexican_classical genre|mexican_electronic genre|mexican_hip_hop genre|mexican_indie genre|mexican_pop genre|mexican_pop_punk genre|mexican_rock genre|mexican_son genre|mexican_traditional genre|miami_bass genre|miami_hip_hop genre|miami_indie genre|miami_metal genre|michigan_indie genre|microhouse genre|microtonal genre|middle_earth genre|middle_eastern_traditional genre|midwest_americana genre|midwest_emo genre|military_cadence genre|military_rap genre|milwaukee_indie genre|mindfulness genre|minecraft genre|minimal_tech_house genre|minimal_techno genre|minimal_wave genre|minimalism genre|minneapolis_indie genre|minneapolis_punk genre|minneapolis_sound genre|minnesota_hip_hop genre|mississippi_indie genre|mizrahi genre|mluvene_slovo genre|mod_revival genre|modern_alternative_rock genre|modern_big_band genre|modern_blues genre|modern_blues_rock genre|modern_bollywood genre|modern_country_rock genre|modern_dream_pop genre|modern_folk_rock genre|modern_free_jazz genre|modern_funk genre|modern_hard_rock genre|modern_jangle_pop genre|modern_jazz_piano genre|modern_jazz_trio genre|modern_old genre|modern_performance genre|modern_power_pop genre|modern_psychedelic_folk genre|modern_reggae genre|modern_rock genre|modern_salsa genre|modern_samba genre|modern_ska_punk genre|modern_southern_rock genre|modern_string_quartet genre|modern_swing genre|modern_uplift genre|modular_synth genre|moldovan_pop genre|mollywood genre|monastic genre|mongolian_pop genre|monterrey_indie genre|montreal_indie genre|moog genre|moombahton genre|moravian_folk genre|morna genre|moroccan_pop genre|motivation genre|motown genre|mountain_dulcimer genre|movie_tunes genre|mpb genre|music_box genre|music_hall genre|musica_afroperuana genre|musica_antigua genre|musica_aragonesa genre|musica_ayacuchana genre|musica_canaria genre|musica_de_fondo genre|musica_infantil genre|musica_infantil_catala genre|musica_jibara genre|musica_llanera genre|musica_nativista genre|musica_para_ninos genre|musica_piemonteisa genre|musica_popular_paraense genre|musica_potosina genre|musica_prehispanica genre|musical_advocacy genre|musikkorps genre|musique_concrete genre|musique_guadeloupe genre|musique_peule genre|musique_pour_enfant_quebecois genre|musique_pour_enfants genre|musique_touareg genre|muzica_populara genre|muziek_voor_kinderen genre|naija_worship genre|narodna_muzika genre|nashville_americana genre|nashville_indie genre|nashville_singer genre|nashville_sound genre|native_american genre|native_american_flute genre|native_american_hip_hop genre|navajo genre|nc_hip_hop genre|nederpop genre|neo genre|neo_classical_metal genre|neo_kyma genre|neo_mellow genre|neo_r genre|neo_soul genre|neoclassical_darkwave genre|neoclassicism genre|neofolk genre|neon_pop_punk genre|neotango genre|nepali_indie genre|nepali_pop genre|nerdcore genre|neue_deutsche_harte genre|neue_deutsche_todeskunst genre|neue_deutsche_welle genre|neurofunk genre|new_age genre|new_age_piano genre|new_americana genre|new_beat genre|new_comedy genre|new_england_americana genre|new_french_touch genre|new_isolationism genre|new_jack_swing genre|new_jersey_hardcore genre|new_jersey_indie genre|new_jersey_punk genre|new_jersey_rap genre|new_mexico_music genre|new_orleans_blues genre|new_orleans_funk genre|new_orleans_indie genre|new_orleans_jazz genre|new_orleans_rap genre|new_rave genre|new_romantic genre|new_tribe genre|new_wave genre|new_wave_of_thrash_metal genre|new_wave_pop genre|new_weird_america genre|new_york_drill genre|newcastle_indie genre|nica genre|nigerian_hip_hop genre|nigerian_pop genre|nightcore genre|nightrun genre|ninja genre|nintendocore genre|nisiotika genre|nl_folk genre|no_wave genre|noise_pop genre|noise_punk genre|noise_rock genre|nordic_contemporary_classical genre|nordic_folk genre|nordic_house genre|nordic_post genre|nordic_soundtrack genre|norman_ok_indie genre|norsk_lovsang genre|norteno genre|north_carolina_emo genre|north_carolina_indie genre|north_east_england_indie genre|northern_irish_indie genre|northern_soul genre|norwegian_black_metal genre|norwegian_choir genre|norwegian_classical genre|norwegian_contemporary_jazz genre|norwegian_death_metal genre|norwegian_experimental genre|norwegian_hip_hop genre|norwegian_indie genre|norwegian_jazz genre|norwegian_metal genre|norwegian_pop genre|norwegian_pop_rap genre|norwegian_punk_rock genre|norwegian_rock genre|norwegian_singer genre|norwegian_space_disco genre|nottingham_indie genre|nouvelle_chanson_francaise genre|nova_canco genre|nova_mpb genre|novelty genre|nrg genre|nu genre|nu_age genre|nu_disco genre|nu_gaze genre|nu_jazz genre|nu_metal genre|nu_skool_breaks genre|nubian_traditional genre|nueva_cancion genre|nueva_ola_chilena genre|nueva_ola_peruana genre|nuevo_tango genre|nursery genre|nwobhm genre|nwothm genre|ny_roots genre|nyc_pop genre|nyc_rap genre|nyhc genre|nz_folk genre|nz_hardcore genre|nz_hip_hop genre|nz_indie genre|nz_pop genre|nz_punk genre|nz_reggae genre|nz_singer genre|oakland_indie genre|oceania_soundtrack genre|ohio_indie genre|oi genre|okc_indie genre|okinawan_pop genre|oklahoma_country genre|old genre|old_school_dancehall genre|old_school_hip_hop genre|old_school_thrash genre|old_school_uk_hip_hop genre|old_west genre|olympia_wa_indie genre|omaha_indie genre|one genre|ontario_indie genre|opera genre|opera_chorus genre|opera_metal genre|operatic_pop genre|operetta genre|opm genre|oratory genre|orchestra genre|orchestral_performance genre|orebro_indie genre|orgcore genre|oriental_classical genre|orlando_indie genre|orquesta_cubana genre|orquesta_tipica genre|orthodox_chant genre|otacore genre|oth_indie genre|ottawa_indie genre|ottawa_rap genre|oud genre|outlaw_country genre|outsider genre|outsider_house genre|oxford_choir genre|oxford_indie genre|p_funk genre|pagan genre|pagan_black_metal genre|pagode genre|pagode_baiano genre|paisley_underground genre|pakistani_folk genre|pakistani_hip_hop genre|pakistani_indie genre|pakistani_pop genre|palestinian_pop genre|palm_desert_scene genre|panamanian_pop genre|panamanian_rock genre|panpipe genre|papuri genre|parody genre|partido_alto genre|permanent_wave genre|pernambuco_alternative genre|perreo genre|persian_pop genre|persian_traditional genre|person_band genre|perth_indie genre|peruvian_hip_hop genre|peruvian_rock genre|pet_calming genre|philly_indie genre|philly_rap genre|philly_soul genre|phonk genre|pianissimo genre|piano_blues genre|piano_cover genre|piano_mpb genre|piano_rock genre|pibroch genre|piedmont_blues genre|pinoy_alternative_rap genre|pinoy_hip_hop genre|pinoy_indie genre|pinoy_pop_punk genre|pinoy_praise genre|pinoy_r genre|pinoy_reggae genre|pinoy_rock genre|pinoy_traditional genre|pinoy_trap genre|pirate genre|pittsburgh_indie genre|pittsburgh_rap genre|pittsburgh_rock genre|pixie genre|plunderphonics genre|poetry genre|polca_paraguaya genre|polish_blues genre|polish_classical genre|polish_contemporary_classical genre|polish_jazz genre|polish_modern_jazz genre|polish_pop genre|polish_post genre|polish_rock genre|polka genre|polynesian_hip_hop genre|polynesian_pop genre|polynesian_traditional genre|polyphony genre|pony genre|pop genre|pop_argentino genre|pop_boy_group genre|pop_catracho genre|pop_chileno genre|pop_edm genre|pop_emo genre|pop_folk genre|pop_girl_group genre|pop_house genre|pop_nacional genre|pop_peruano genre|pop_punk genre|pop_quebecois genre|pop_rap genre|pop_reggaeton genre|pop_rock genre|pop_romantico genre|pop_urbaine genre|pop_violin genre|popgaze genre|popping genre|poprock genre|popwave genre|porro genre|portland_hip_hop genre|portland_indie genre|portland_metal genre|portsmouth_indie genre|portuguese_early_music genre|post genre|power genre|power_metal genre|power_pop genre|power_thrash genre|powerviolence genre|praise genre|prepared_piano genre|preschool_children genre|prog_quebec genre|progressive genre|progressive_alternative genre|progressive_bluegrass genre|progressive_deathcore genre|progressive_electro_house genre|progressive_groove_metal genre|progressive_house genre|progressive_jazz_fusion genre|progressive_metal genre|progressive_metalcore genre|progressive_post genre|progressive_psytrance genre|progressive_rock genre|progressive_sludge genre|progressive_trance genre|progressive_trance_house genre|proto genre|protopunk genre|psybass genre|psychedelic genre|psychedelic_blues genre|psychedelic_doom genre|psychedelic_folk genre|psychedelic_folk_rock genre|psychedelic_hip_hop genre|psychedelic_pop genre|psychedelic_punk genre|psychedelic_rock genre|psychedelic_trance genre|psychill genre|psychobilly genre|pub_rock genre|puerto_rican_folk genre|puerto_rican_pop genre|puerto_rican_rock genre|punjabi_folk genre|punjabi_hip_hop genre|punjabi_pop genre|punk genre|punk_argentina genre|punk_blues genre|punk_rock_italiano genre|punta genre|purple_sound genre|qawwali genre|quatuor_a_cordes genre|quebec_death_metal genre|quebec_indie genre|queens_hip_hop genre|queercore genre|quiet_storm genre|quran genre|rabindra_sangeet genre|radio_symphony genre|ragtime genre|rai genre|ranchera genre|rap genre|rap_chileno genre|rap_conciencia genre|rap_conscient genre|rap_cristiano genre|rap_dominicano genre|rap_espanol genre|rap_kreyol genre|rap_latina genre|rap_metal genre|rap_napoletano genre|rap_rock genre|rare_groove genre|rave genre|reading genre|reading_indie genre|rebel_blues genre|rebetiko genre|recorder genre|red_dirt genre|redneck genre|reggae genre|reggae_en_espanol genre|reggae_fusion genre|reggae_rock genre|reggaeton genre|reggaeton_chileno genre|reggaeton_flow genre|regional_mexican genre|regional_mexican_pop genre|relaxative genre|renaissance genre|retro_metal genre|retro_soul genre|rhode_island_indie genre|rhythm_and_blues genre|riddim genre|rif genre|riot_grrrl genre|ritmo_kombina genre|rochester_mn_indie genre|rochester_ny_indie genre|rock genre|rock_alternatif_francais genre|rock_alternativo_brasileiro genre|rock_andaluz genre|rock_chapin genre|rock_cristiano genre|rock_drums genre|rock_en_espanol genre|rock_gaucho genre|rock_nacional genre|rock_nacional_brasileiro genre|rock_steady genre|rock_urbano_mexicano genre|rockabilly genre|rockabilly_en_espanol genre|roda_de_samba genre|roll genre|romanian_folk genre|romanian_hip_hop genre|romanian_pop genre|romanian_rock genre|romantic_era genre|romantico genre|roots_americana genre|roots_reggae genre|roots_rock genre|roots_worship genre|rosary genre|rumba genre|rumba_congolaise genre|rune_folk genre|russian_alternative genre|russian_ccm genre|russian_chanson genre|russian_contemporary_classical genre|russian_dance genre|russian_folk genre|russian_hip_hop genre|russian_jazz genre|russian_metal genre|russian_modern_classical genre|russian_pop genre|russian_post genre|russian_punk genre|russian_rock genre|russian_romanticism genre|russian_shoegaze genre|rva_indie genre|rwandan_traditional genre|ryukyu_ongaku genre|s_choir genre|s_folk genre|s_music genre|sacramento_indie genre|sacred_steel genre|salsa genre|salsa_choke genre|salsa_colombiana genre|salsa_cubana genre|salsa_international genre|salsa_peruana genre|salsa_puertorriquena genre|salsa_venezolana genre|samba genre|samba_de_roda genre|san_diego_indie genre|san_diego_rap genre|san_marcos_tx_indie genre|sandalwood genre|sarod genre|saskatchewan_indie genre|sax genre|scandinavian_r genre|scandipop genre|schlager genre|scorecore genre|scottish_electronic genre|scottish_fiddle genre|scottish_folk genre|scottish_hip_hop genre|scottish_indie genre|scottish_metal genre|scottish_new_wave genre|scottish_rock genre|scottish_singer genre|scratch genre|scream_rap genre|screamo genre|seattle_indie genre|second_line genre|sefardi genre|semba genre|serialism genre|sertanejo genre|sertanejo_pop genre|sertanejo_tradicional genre|sertanejo_universitario genre|sevdah genre|sevillanas genre|shaabi genre|shabad genre|shakuhachi genre|shamanic genre|shanty genre|sheffield_indie genre|shibuya genre|shimmer_pop genre|shimmer_psych genre|shiver_pop genre|shoegaze genre|show_tunes genre|shred genre|shush genre|singaporean_mandopop genre|singaporean_pop genre|singaporean_singer genre|singer genre|singing_bowl genre|sitar genre|ska genre|ska_argentino genre|ska_jazz genre|ska_mexicano genre|ska_punk genre|ska_revival genre|skate_punk genre|skiffle genre|skramz genre|slack genre|slam_poetry genre|slamming_deathcore genre|slavic_folk_metal genre|slayer genre|slc_indie genre|sleaze_rock genre|sleep genre|slovak_pop genre|slovenian_electronic genre|slovenian_metal genre|slow_core genre|slow_game genre|sludge_metal genre|small_room genre|smooth_jazz genre|smooth_saxophone genre|smooth_soul genre|soca genre|socal_pop_punk genre|social_media_pop genre|soda_pop genre|soft_rock genre|solipsynthm genre|son_cubano genre|son_cubano_clasico genre|songwriter genre|soprano genre|soukous genre|soul genre|soul_blues genre|soul_flow genre|soul_jazz genre|sound genre|sound_art genre|sound_effects genre|sound_team genre|soundtrack genre|south_african_alternative genre|south_african_choral genre|south_african_country genre|south_african_gospel genre|south_african_hip_hop genre|south_african_jazz genre|south_african_pop genre|south_african_rock genre|south_carolina_indie genre|south_dakota_indie genre|southampton_indie genre|southern_americana genre|southern_gospel genre|southern_hip_hop genre|southern_metal genre|southern_rock genre|southern_soul genre|southern_soul_blues genre|soviet_synthpop genre|sovietwave genre|spa genre|space_age_pop genre|space_ambient genre|space_rock genre|spanish_baroque genre|spanish_classical genre|spanish_folk_metal genre|spanish_indie_pop genre|spanish_invasion genre|spanish_metal genre|spanish_new_wave genre|spanish_pop genre|spanish_pop_rock genre|spanish_renaissance genre|spanish_rock genre|spanish_techno genre|speed_garage genre|speed_metal genre|spiritual_hip_hop genre|spiritual_jazz genre|spirituals genre|springfield_mo_indie genre|spytrack genre|steampunk genre|steel_guitar genre|steelpan genre|stl_indie genre|stomp_and_flutter genre|stomp_and_holler genre|stomp_and_whittle genre|stomp_pop genre|stoner_metal genre|stoner_rock genre|straight genre|straight_edge genre|street_band genre|street_punk genre|stride genre|string_band genre|string_folk genre|string_orchestra genre|string_quartet genre|strut genre|style_jazz genre|substep genre|sudanese_pop genre|sufi genre|sufi_chant genre|sunshine_pop genre|supergroup genre|surf_music genre|surf_punk genre|svensk_progg genre|swamp_blues genre|swamp_pop genre|swamp_rock genre|swancore genre|swedish_alternative_rock genre|swedish_americana genre|swedish_black_metal genre|swedish_country genre|swedish_dancehall genre|swedish_death_metal genre|swedish_doom_metal genre|swedish_electronic genre|swedish_electropop genre|swedish_eurodance genre|swedish_gangsta_rap genre|swedish_garage_rock genre|swedish_hard_rock genre|swedish_hardcore genre|swedish_house genre|swedish_idol_pop genre|swedish_indie_folk genre|swedish_indie_pop genre|swedish_indie_rock genre|swedish_jazz genre|swedish_metal genre|swedish_metalcore genre|swedish_pop genre|swedish_post genre|swedish_power_metal genre|swedish_prog genre|swedish_progressive_metal genre|swedish_rock genre|swedish_singer genre|swedish_soul genre|swedish_stoner_rock genre|swedish_synth genre|swedish_synthpop genre|swedish_tropical_house genre|swedish_underground_rap genre|swing genre|swing_italiano genre|swing_revival genre|swiss_black_metal genre|swiss_metal genre|swiss_pop genre|swiss_rock genre|swiss_worship genre|symphonic_black_metal genre|symphonic_metal genre|symphonic_rock genre|synth_funk genre|synth_punk genre|synthpop genre|synthwave genre|syrian_pop genre|tabla genre|tagalog_worship genre|taiwan_campus_folk genre|taiwan_hip_hop genre|taiwan_indie genre|taiwan_pop genre|taiwan_singer genre|tajik_pop genre|talent_show genre|tamborazo genre|tamil_hip_hop genre|tamil_pop genre|tamil_worship genre|tampa_indie genre|tango genre|tango_cancion genre|tape_club genre|tech_house genre|technical_death_metal genre|technical_deathcore genre|technical_groove_metal genre|technical_thrash genre|techno genre|techno_kayo genre|tecnobanda genre|teen_pop genre|tejano genre|telugu_worship genre|tennessee_metal genre|tex genre|texas_blues genre|texas_country genre|texas_pop_punk genre|texas_punk genre|thai_indie_pop genre|thai_pop genre|thall genre|theme genre|theremin genre|thrash_core genre|thrash_metal genre|tico genre|timba genre|time genre|time_fiddle genre|tin_pan_alley genre|tipico genre|tolkien_metal genre|tollywood genre|tone genre|tonk_piano genre|torch_song genre|toronto_indie genre|toronto_rap genre|trad_jazz_catala genre|trad_metal genre|traditional_bluegrass genre|traditional_blues genre|traditional_british_folk genre|traditional_country genre|traditional_folk genre|traditional_funk genre|traditional_rockabilly genre|traditional_scottish_folk genre|traditional_ska genre|traditional_soul genre|trance genre|trancecore genre|transpop genre|trap genre|trap_argentino genre|trap_chileno genre|trap_espanol genre|trap_latino genre|trap_queen genre|trap_soul genre|traprun genre|trash_rock genre|triangle_indie genre|tribal_house genre|trinidadian_reggae genre|trio_cubano genre|trip_hop genre|trival genre|tropical genre|tropical_house genre|trova genre|truck genre|tuareg_guitar genre|tucson_indie genre|tulsa_indie genre|turbo_folk genre|turkish_classical genre|turkish_experimental genre|turkish_folk genre|turkish_jazz genre|turkish_modern_jazz genre|turkish_pop genre|turkish_psych genre|turkish_rock genre|turkish_trap genre|turkish_trap_pop genre|turntablism genre|twee_pop genre|twoubadou genre|tzadik genre|ugandan_pop genre|uilleann_pipes genre|uk82 genre|uk_alternative_hip_hop genre|uk_alternative_pop genre|uk_americana genre|uk_contemporary_r genre|uk_dance genre|uk_dancehall genre|uk_dnb genre|uk_doom_metal genre|uk_drill genre|uk_experimental_electronic genre|uk_funky genre|uk_garage genre|uk_hip_hop genre|uk_metalcore genre|uk_noise_rock genre|uk_pop genre|uk_pop_punk genre|uk_post genre|uk_reggae genre|uk_rockabilly genre|uk_stoner_rock genre|uk_worship genre|ukg_revival genre|ukrainian_choir genre|ukrainian_classical genre|ukrainian_electronic genre|ukrainian_pop genre|ukrainian_rock genre|ukulele genre|umbanda genre|underground_hip_hop genre|underground_power_pop genre|underground_rap genre|university_choir genre|uplifting_trance genre|urban_contemporary genre|utah_indie genre|uzbek_traditional genre|vallenato genre|vancouver_indie genre|vancouver_metal genre|vancouver_punk genre|vapor_pop genre|vapor_soul genre|vapor_trap genre|vapor_twitch genre|vaporwave genre|variete_francaise genre|vaudeville genre|vbs genre|veena genre|vegan_straight_edge genre|vegas_indie genre|velha_guarda genre|venezuelan_hip_hop genre|venezuelan_indie genre|venezuelan_rock genre|veracruz_indie genre|vermont_indie genre|victoria_bc_indie genre|victorian_britain genre|video_game_music genre|vietnamese_bolero genre|vietnamese_pop genre|viking_black_metal genre|viking_folk genre|viking_metal genre|vintage_chanson genre|vintage_chinese_pop genre|vintage_classical_singing genre|vintage_country_folk genre|vintage_dutch_pop genre|vintage_french_electronic genre|vintage_gospel genre|vintage_hawaiian genre|vintage_hollywood genre|vintage_italian_pop genre|vintage_italian_soundtrack genre|vintage_jazz genre|vintage_old genre|vintage_rockabilly genre|vintage_schlager genre|vintage_spanish_pop genre|vintage_swedish_pop genre|vintage_swing genre|vintage_tango genre|viola genre|violao genre|violin genre|viral_pop genre|viral_trap genre|virgin_islands_reggae genre|virginia_metal genre|virginia_punk genre|visor genre|visual_kei genre|vocal_ensemble genre|vocal_harmony_group genre|vocal_house genre|vocal_jazz genre|vocal_trance genre|vocaloid genre|vogue genre|volksmusik genre|warm_drone genre|washboard genre|washington_indie genre|wassoulou genre|water genre|wave genre|welsh_folk genre|welsh_indie genre|welsh_metal genre|welsh_rock genre|west_african_jazz genre|west_australian_hip_hop genre|west_coast_rap genre|west_coast_reggae genre|west_coast_trap genre|west_end genre|west_virginia_indie genre|west_yorkshire_indie genre|western_americana genre|western_mass_indie genre|western_saharan_folk genre|western_swing genre|white_noise genre|wind_ensemble genre|wind_quintet genre|wisconsin_indie genre|witch_house genre|wonky genre|woogie genre|wop genre|world genre|world_fusion genre|world_meditation genre|world_worship genre|worship genre|wrestling genre|wrock genre|wu_fam genre|wyoming_indie genre|wyoming_roots genre|xhosa genre|yacht_rock genre|ye_ye genre|yiddish_folk genre|yodeling genre|yoga genre|yoik genre|york_indie genre|yugoslav_new_wave genre|yugoslav_rock genre|zapstep genre|zen genre|zhongguo_feng genre|zimdancehall genre|zolo genre|zouglou genre|zouk genre|zouk_riddim genre|zydeco acousticness danceability energy instrumentalness liveness loudness speechiness tempo valence pop|0 pop|1 pop|2 pop|3 pop|4 pop|5 pop|6 pop|7 pop|8 pop|9 pop|10 pop|11 pop|12 pop|13 pop|14 pop|15 pop|16 pop|17 pop|18 pop|19 year|1921 year|1922 year|1923 year|1924 year|1925 year|1926 year|1927 year|1928 year|1929 year|1930 year|1931 year|1932 year|1933 year|1934 year|1935 year|1936 year|1937 year|1938 year|1939 year|1940 year|1941 year|1942 year|1943 year|1944 year|1945 year|1946 year|1947 year|1948 year|1949 year|1950 year|1951 year|1952 year|1953 year|1954 year|1955 year|1956 year|1957 year|1958 year|1959 year|1960 year|1961 year|1962 year|1963 year|1964 year|1965 year|1966 year|1967 year|1968 year|1969 year|1970 year|1971 year|1972 year|1973 year|1974 year|1975 year|1976 year|1977 year|1978 year|1979 year|1980 year|1981 year|1982 year|1983 year|1984 year|1985 year|1986 year|1987 year|1988 year|1989 year|1990 year|1991 year|1992 year|1993 year|1994 year|1995 year|1996 year|1997 year|1998 year|1999 year|2000 year|2001 year|2002 year|2003 year|2004 year|2005 year|2006 year|2007 year|2008 year|2009 year|2010 year|2011 year|2012 year|2013 year|2014 year|2015 year|2016 year|2017 year|2018 year|2019 year|2020 id
0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.614607 0.788833 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.076506 0.071457 0.13720 0.000000 0.01136 0.159414 0.008153 0.164153 0.07040 0.0 0.0 0.0 0.0 0.00 0.0 0.15 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3KIuCzckjdeeVuswPo20mC
1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000 0.000000 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.196386 0.030972 0.01162 0.000188 0.03100 0.113704 0.009742 0.142619 0.01808 0.0 0.0 0.0 0.0 0.15 0.0 0.00 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 7dkMnOK1h9I3D2NyDDjBfh
2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000 0.000000 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.166265 0.102834 0.04940 0.000000 0.05940 0.143322 0.035707 0.139808 0.13600 0.0 0.0 0.0 0.0 0.15 0.0 0.00 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 7ilXPF7IilGtVX4MMubQfQ
3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000 0.000000 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.182530 0.028340 0.02620 0.000008 0.12380 0.122321 0.009391 0.067633 0.02320 0.0 0.0 0.0 0.0 0.15 0.0 0.00 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3enJcaHwRwN3ABPp3Bae35
4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000 0.000000 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.189558 0.122267 0.04200 0.000001 0.04220 0.133703 0.008153 0.086469 0.10760 0.0 0.0 0.0 0.0 0.15 0.0 0.00 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 6aewX7cGeXnZTK36bZRI6T
client_id = 'id'
client_secret= 'secret'
scope = 'user-library-read'

if len(sys.argv) > 1:
    username = sys.argv[1]
else:
    print("Usage: %s username" % (sys.argv[0],))
    sys.exit()
auth_manager = SpotifyClientCredentials(client_id=client_id, client_secret=client_secret)
sp = spotipy.Spotify(auth_manager=auth_manager)
token = util.prompt_for_user_token(scope, client_id= client_id, client_secret=client_secret, redirect_uri='http://localhost:8881/')
sp = spotipy.Spotify(auth=token)
#images aren't going to be used until I start building a UI
id_name = {}
list_photo = {}
for i in sp.current_user_playlists()['items']:

    id_name[i['name']] = i['uri'].split(':')[2]
    list_photo[i['uri'].split(':')[2]] = i['images'][0]['url']
id_name
{'My Peloton Music by madsthaks': '2ERUubOm9fCqSehYVio8bY',
 'chill': '0VjrxXF0S8wdkr8MLUaoFO',
 'EDM': '49q1SNpthDWA9D5ECbas6J',
 'My Shazam Tracks': '4nSIFeOEHqb0APbPVBvOy2',
 'kanye': '6lMQskYSwbK1RJUXeZYmv4',
 'marathon': '15RqI2qiCq5jD2KU0mD1I5',
 'Starred': '4mVCQMqnVVmZYIDnKjAImj',
 'Underground Hits': '37i9dQZF1DX30HHrCAl4ZG',
 'DJ Top 50 🎧 club music, remix, bootleg, mashup': '6jVUGg95c9A37iGOj2GMBb',
 'Running Electro': '3JDbVHBjEpM4PEuNwBlMRG',
 'Quentin Tarantino’s Django Unchained Original Motion Picture Soundtrack': '47ANSoONFl9iZlgErkYwmj',
 'Epic': '2Np7ZFr3jwITwuCvtxe5m6',
 'Alternative R&B': '3HG3Uca5gTcmZIEmyJl8NB',
 'Epic Classical': '37i9dQZF1DX9G9wwzwWL2k',
 'Chill': '3Atmxx4GS7g9U1IhAin1VL',
 'Electro House +': '2izYujPRo6mMFCGVuJMlFW',
 '3LAU': '41qGXzlHqXZwABw6D9l7LA',
 'Club/House/Electro/Trance': '62mXsdRriKgYjliP82CSti'}
def create_necessary_outputs(playlist_name,id_dic, df):
    """ 
    Pull songs from a specific playlist.

    Parameters: 
        playlist_name (str): name of the playlist you'd like to pull from the spotify API
        id_dic (dic): dictionary that maps playlist_name to playlist_id
        df (pandas dataframe): spotify datafram
        
    Returns: 
        playlist: all songs in the playlist THAT ARE AVAILABLE IN THE KAGGLE DATASET
    """
    
    #generate playlist dataframe
    playlist = pd.DataFrame()
    playlist_name = playlist_name

    for ix, i in enumerate(sp.playlist(id_dic[playlist_name])['tracks']['items']):
        #print(i['track']['artists'][0]['name'])
        playlist.loc[ix, 'artist'] = i['track']['artists'][0]['name']
        playlist.loc[ix, 'name'] = i['track']['name']
        playlist.loc[ix, 'id'] = i['track']['id'] # ['uri'].split(':')[2]
        playlist.loc[ix, 'url'] = i['track']['album']['images'][1]['url']
        playlist.loc[ix, 'date_added'] = i['added_at']

    playlist['date_added'] = pd.to_datetime(playlist['date_added'])  
    
    playlist = playlist[playlist['id'].isin(df['id'].values)].sort_values('date_added',ascending = False)
    
    return playlist
id_name
{'My Peloton Music by madsthaks': '2ERUubOm9fCqSehYVio8bY',
 'chill': '0VjrxXF0S8wdkr8MLUaoFO',
 'EDM': '49q1SNpthDWA9D5ECbas6J',
 'My Shazam Tracks': '4nSIFeOEHqb0APbPVBvOy2',
 'kanye': '6lMQskYSwbK1RJUXeZYmv4',
 'marathon': '15RqI2qiCq5jD2KU0mD1I5',
 'Starred': '4mVCQMqnVVmZYIDnKjAImj',
 'Underground Hits': '37i9dQZF1DX30HHrCAl4ZG',
 'DJ Top 50 🎧 club music, remix, bootleg, mashup': '6jVUGg95c9A37iGOj2GMBb',
 'Running Electro': '3JDbVHBjEpM4PEuNwBlMRG',
 'Quentin Tarantino’s Django Unchained Original Motion Picture Soundtrack': '47ANSoONFl9iZlgErkYwmj',
 'Epic': '2Np7ZFr3jwITwuCvtxe5m6',
 'Alternative R&B': '3HG3Uca5gTcmZIEmyJl8NB',
 'Epic Classical': '37i9dQZF1DX9G9wwzwWL2k',
 'Chill': '3Atmxx4GS7g9U1IhAin1VL',
 'Electro House +': '2izYujPRo6mMFCGVuJMlFW',
 '3LAU': '41qGXzlHqXZwABw6D9l7LA',
 'Club/House/Electro/Trance': '62mXsdRriKgYjliP82CSti'}
playlist_EDM = create_necessary_outputs('EDM', id_name,spotify_df)
#playlist_chill = create_necessary_outputs('chill',id_name, spotify_df)
#playlist_classical = create_necessary_outputs('Epic Classical',id_name, spotify_df)
from skimage import io
import matplotlib.pyplot as plt

def visualize_songs(df):
    """ 
    Visualize cover art of the songs in the inputted dataframe

    Parameters: 
        df (pandas dataframe): Playlist Dataframe
    """
    
    temp = df['url'].values
    plt.figure(figsize=(15,int(0.625 * len(temp))))
    columns = 5
    
    for i, url in enumerate(temp):
        plt.subplot(len(temp) / columns + 1, columns, i + 1)

        image = io.imread(url)
        plt.imshow(image)
        plt.xticks(color = 'w', fontsize = 0.1)
        plt.yticks(color = 'w', fontsize = 0.1)
        plt.xlabel(df['name'].values[i], fontsize = 12)
        plt.tight_layout(h_pad=0.4, w_pad=0)
        plt.subplots_adjust(wspace=None, hspace=None)

    plt.show()
playlist_EDM
artist name id url date_added
39 Martin Garrix Drown (feat. Clinton Kane) 4RVtBlHFKj51Ipvpfv5ER4 https://i.scdn.co/image/ab67616d00001e02b154bc... 2020-08-01 01:27:34+00:00
37 Riton Turn Me On (feat. Vula) 0qaWEvPkts34WF68r8Dzx9 https://i.scdn.co/image/ab67616d00001e02216a27... 2020-07-09 01:34:03+00:00
34 RL Grime UCLA 3OaunNUlXXs5e2PXtNAzzG https://i.scdn.co/image/ab67616d00001e02eded2e... 2020-06-20 00:34:44+00:00
33 SAINt JHN Roses - Imanbek Remix 7fPuWrlpwDcHm5aHCH5D9t https://i.scdn.co/image/ab67616d00001e022b6e2f... 2020-04-19 06:26:21+00:00
30 Loud Luxury Body 21RzyxY3EFaxVy6K4RqaU9 https://i.scdn.co/image/ab67616d00001e02af5e18... 2020-03-26 22:28:23+00:00
28 ZHU Working For It 2HJQcyUpmUuvzS5vBAICIc https://i.scdn.co/image/ab67616d00001e02bfaac9... 2019-12-19 15:53:47+00:00
26 Lastlings Deja Vu 649HM5lOHHqsoG5nldMo6L https://i.scdn.co/image/ab67616d00001e02129817... 2019-11-19 16:04:48+00:00
25 Avicii Waiting For Love 2P4OICZRVAQcYAV2JReRfj https://i.scdn.co/image/ab67616d00001e025393c5... 2019-11-17 03:38:47+00:00
24 Regard Ride It 2tnVG71enUj33Ic2nFN6kZ https://i.scdn.co/image/ab67616d00001e025c2781... 2019-11-13 04:13:21+00:00
20 Dimitri Vegas & Like Mike Mammoth 76fqWMe0buqQoaNTIbLWmr https://i.scdn.co/image/ab67616d00001e0216bf35... 2019-10-26 19:11:43+00:00
18 Sebastian Ingrosso Reload - Radio Edit 5jyUBKpmaH670zrXrE0wmO https://i.scdn.co/image/ab67616d00001e0270e2e5... 2019-10-04 15:50:31+00:00
22 Kygo This Town (feat. Sasha Sloan) 4aSfgWmRa9KsISD4Jmx7QB https://i.scdn.co/image/ab67616d00001e02a33355... 2019-09-30 20:05:19+00:00
14 Hayden James Just Friends 6tB4XVKceo2307SSWXaO0y https://i.scdn.co/image/ab67616d00001e024b6940... 2019-09-30 20:04:53+00:00
13 MEDUZA Piece Of Your Heart 1DFD5Fotzgn6yYXkYsKiGs https://i.scdn.co/image/ab67616d00001e02ead130... 2019-09-30 20:04:47+00:00
11 Dimitri Vegas & Like Mike Tremor - Sensation 2014 Anthem 6AE0G24YXnDyEgE4L0efpB https://i.scdn.co/image/ab67616d00001e023d4c4f... 2019-09-30 20:04:43+00:00
7 Tiësto Secrets 0NIC4unbe5KZOp1d9T7OaF https://i.scdn.co/image/ab67616d00001e02de5f51... 2019-09-30 20:04:40+00:00
visualize_songs(playlist_EDM)

Create Playlist Vector

from IPython.display import Image
Image("/Users/thakm004/Documents/Spotify/summarization_2.png")
def generate_playlist_feature(complete_feature_set, playlist_df, weight_factor):
    """ 
    Summarize a user's playlist into a single vector

    Parameters: 
        complete_feature_set (pandas dataframe): Dataframe which includes all of the features for the spotify songs
        playlist_df (pandas dataframe): playlist dataframe
        weight_factor (float): float value that represents the recency bias. The larger the recency bias, the most priority recent songs get. Value should be close to 1. 
        
    Returns: 
        playlist_feature_set_weighted_final (pandas series): single feature that summarizes the playlist
        complete_feature_set_nonplaylist (pandas dataframe): 
    """
    
    complete_feature_set_playlist = complete_feature_set[complete_feature_set['id'].isin(playlist_df['id'].values)]#.drop('id', axis = 1).mean(axis =0)
    complete_feature_set_playlist = complete_feature_set_playlist.merge(playlist_df[['id','date_added']], on = 'id', how = 'inner')
    complete_feature_set_nonplaylist = complete_feature_set[~complete_feature_set['id'].isin(playlist_df['id'].values)]#.drop('id', axis = 1)
    
    playlist_feature_set = complete_feature_set_playlist.sort_values('date_added',ascending=False)

    most_recent_date = playlist_feature_set.iloc[0,-1]
    
    for ix, row in playlist_feature_set.iterrows():
        playlist_feature_set.loc[ix,'months_from_recent'] = int((most_recent_date.to_pydatetime() - row.iloc[-1].to_pydatetime()).days / 30)
        
    playlist_feature_set['weight'] = playlist_feature_set['months_from_recent'].apply(lambda x: weight_factor ** (-x))
    
    playlist_feature_set_weighted = playlist_feature_set.copy()
    #print(playlist_feature_set_weighted.iloc[:,:-4].columns)
    playlist_feature_set_weighted.update(playlist_feature_set_weighted.iloc[:,:-4].mul(playlist_feature_set_weighted.weight,0))
    playlist_feature_set_weighted_final = playlist_feature_set_weighted.iloc[:, :-4]
    #playlist_feature_set_weighted_final['id'] = playlist_feature_set['id']
    
    return playlist_feature_set_weighted_final.sum(axis = 0), complete_feature_set_nonplaylist
complete_feature_set_playlist_vector_EDM, complete_feature_set_nonplaylist_EDM = generate_playlist_feature(complete_feature_set, playlist_EDM, 1.09)
#complete_feature_set_playlist_vector_chill, complete_feature_set_nonplaylist_chill = generate_playlist_feature(complete_feature_set, playlist_chill, 1.09)
complete_feature_set_playlist_vector_EDM.shape
(2758,)

Generate Recommendations

from IPython.display import Image
Image("/Users/thakm004/Documents/Spotify/cosine_sim_2.png")
def generate_playlist_recos(df, features, nonplaylist_features):
    """ 
    Pull songs from a specific playlist.

    Parameters: 
        df (pandas dataframe): spotify dataframe
        features (pandas series): summarized playlist feature
        nonplaylist_features (pandas dataframe): feature set of songs that are not in the selected playlist
        
    Returns: 
        non_playlist_df_top_40: Top 40 recommendations for that playlist
    """
    
    non_playlist_df = df[df['id'].isin(nonplaylist_features['id'].values)]
    non_playlist_df['sim'] = cosine_similarity(nonplaylist_features.drop('id', axis = 1).values, features.values.reshape(1, -1))[:,0]
    non_playlist_df_top_40 = non_playlist_df.sort_values('sim',ascending = False).head(40)
    non_playlist_df_top_40['url'] = non_playlist_df_top_40['id'].apply(lambda x: sp.track(x)['album']['images'][1]['url'])
    
    return non_playlist_df_top_40
edm_top40 = generate_playlist_recos(spotify_df, complete_feature_set_playlist_vector_EDM, complete_feature_set_nonplaylist_EDM)
from IPython.display import Image
Image("/Users/thakm004/Documents/Spotify/spotify_results.png")
edm_top40
acousticness artists danceability duration_ms energy explicit id instrumentalness key liveness loudness mode name popularity release_date speechiness tempo valence year artists_upd_v1 artists_upd_v2 artists_upd artists_song consolidates_genre_lists popularity_red sim url
10730 0.06430 ['Valerie Broussard', 'Galantis'] 0.683 184564 0.785 0 23FHa9lYnG6Dr8OzombPkS 0.000013 7 0.1770 -4.879 1 Roots 69 2019-08-16 0.0370 122.997 0.5810 2019 [Valerie Broussard, Galantis] [] [Valerie Broussard, Galantis] Valerie BroussardRoots [tropical_house, edm, dance_pop, big_room, pop... 13 0.777350 https://i.scdn.co/image/ab67616d00001e02bfe4e6...
135509 0.01600 ['Calvin Harris', "Rag'n'Bone Man"] 0.807 229184 0.887 0 5itOtNx0WxtJmi1TQ3RuRd 0.000503 1 0.0811 -4.311 0 Giant (with Rag'n'Bone Man) 80 2019-01-11 0.0361 122.015 0.6060 2019 [Calvin Harris, n] [Rag'n'Bone Man] [Calvin Harris, n] Calvin HarrisGiant (with Rag'n'Bone Man) [progressive_house, tropical_house, edm, uk_da... 16 0.744758 https://i.scdn.co/image/ab67616d00001e02a9a9d8...
70513 0.08100 ['Loud Luxury', 'Bryce Vine'] 0.875 187797 0.858 0 7fcEMgPlojD0LzPHwMsoic 0.000001 4 0.3810 -3.886 1 I'm Not Alright 65 2019-12-20 0.0496 121.978 0.7000 2019 [Loud Luxury, Bryce Vine] [] [Loud Luxury, Bryce Vine] Loud LuxuryI'm Not Alright [tropical_house, edm, pop_rap, dance_pop, pop,... 13 0.730603 https://i.scdn.co/image/ab67616d00001e02d48c7e...
106357 0.02820 ['Galantis'] 0.674 191293 0.915 0 6M6Tk58pQvABy6ru66dY3d 0.003370 6 0.2730 -3.999 0 No Money 69 2017-09-15 0.0411 126.038 0.7800 2017 [Galantis] [] [Galantis] GalantisNo Money [tropical_house, edm, dance_pop, big_room, pop... 13 0.728139 https://i.scdn.co/image/ab67616d00001e0271340c...
106353 0.11700 ['Galantis', 'Throttle'] 0.762 190400 0.797 0 5kgqTe1BM720OjU78TGYDw 0.000000 5 0.2020 -2.710 1 Tell Me You Love Me 60 2017-09-15 0.1350 122.066 0.5250 2017 [Galantis, Throttle] [] [Galantis, Throttle] GalantisTell Me You Love Me [tropical_house, edm, dance_pop, big_room, pop... 12 0.726095 https://i.scdn.co/image/ab67616d00001e0271340c...
100074 0.22900 ['Gryffin', 'Katie Pearlman'] 0.590 231291 0.764 0 17ejRbr6B8l9zdqgCZsn4m 0.000000 2 0.1920 -4.735 1 Nobody Compares To You (feat. Katie Pearlman) 66 2019-10-24 0.0467 104.911 0.3310 2019 [Gryffin, Katie Pearlman] [] [Gryffin, Katie Pearlman] GryffinNobody Compares To You (feat. Katie Pea... [tropical_house, edm, dance_pop, pop, electro_... 13 0.720858 https://i.scdn.co/image/ab67616d00001e020e5311...
106355 0.00104 ['Galantis'] 0.708 203133 0.945 0 3aIhJDHxr1kgTSnutJxPTH 0.080300 5 0.2270 -3.247 0 Peanut Butter Jelly 66 2015-06-05 0.2340 127.960 0.5450 2015 [Galantis] [] [Galantis] GalantisPeanut Butter Jelly [tropical_house, edm, dance_pop, big_room, pop... 13 0.719479 https://i.scdn.co/image/ab67616d00001e022b5179...
146679 0.08660 ['Axwell /\\ Ingrosso', 'Axwell', 'Sebastian I... 0.467 254653 0.757 0 4b2tcjrG1qUkSdsqEFP2dB 0.000000 2 0.0742 -3.010 1 Sun Is Shining 72 2017-07-28 0.0517 131.993 0.3830 2017 [Axwell /\\ Ingrosso, Axwell, Sebastian Ingrosso] [] [Axwell /\\ Ingrosso, Axwell, Sebastian Ingrosso] Axwell /\\ IngrossoSun Is Shining [progressive_house, tropical_house, edm, dance... 14 0.717821 https://i.scdn.co/image/ab67616d00001e02fba6de...
106361 0.00463 ['Galantis', 'OneRepublic'] 0.658 205793 0.804 0 1pfgsjmxVZhoZpeDx6POKv 0.000000 0 0.1780 -5.735 1 Bones (feat. OneRepublic) 73 2019-01-31 0.0377 120.047 0.5080 2019 [Galantis, OneRepublic] [] [Galantis, OneRepublic] GalantisBones (feat. OneRepublic) [piano_rock, tropical_house, pop_rock, edm, da... 14 0.711158 https://i.scdn.co/image/ab67616d00001e02344d2f...
106354 0.00711 ['Galantis'] 0.506 227074 0.805 0 46lFttIf5hnUZMGvjK0Wxo 0.001930 1 0.0856 -4.119 1 Runaway (U & I) 75 2015-06-05 0.0469 126.008 0.3830 2015 [Galantis] [] [Galantis] GalantisRunaway (U & I) [tropical_house, edm, dance_pop, big_room, pop... 15 0.711128 https://i.scdn.co/image/ab67616d00001e022b5179...
38318 0.03350 ['Sam Feldt', 'RANI', 'GATTÜSO'] 0.542 207619 0.903 0 6b1RNvAcJjQH73eZO4BLAB 0.000005 4 0.1110 -2.419 0 Post Malone (feat. RANI) - GATTÜSO Remix 72 2019-08-29 0.0434 127.936 0.3670 2019 [Sam Feldt, RANI, GATTÜSO] [] [Sam Feldt, RANI, GATTÜSO] Sam FeldtPost Malone (feat. RANI) - GATTÜSO Remix [edm, dance_pop, big_room, uk_pop, pop, pop_ed... 14 0.705535 https://i.scdn.co/image/ab67616d00001e028dedf4...
151700 0.26900 ['Alesso'] 0.601 190295 0.775 0 6jreFSOTUAViWjKyzOC4Kg 0.000000 0 0.0883 -4.612 1 REMEDY 74 2018-08-31 0.0473 119.964 0.4830 2018 [Alesso] [] [Alesso] AlessoREMEDY [tropical_house, edm, dance_pop, big_room, pro... 14 0.705345 https://i.scdn.co/image/ab67616d00001e02a74798...
122874 0.00292 ['Dirty South', 'Alesso', 'Ruben Haze'] 0.478 226867 0.818 0 54ZPmGE1uOG9IYoUBSRSp7 0.007890 4 0.4380 -5.076 1 City Of Dreams - Radio Edit 60 2013-01-01 0.0377 127.953 0.1630 2013 [Dirty South, Alesso, Ruben Haze] [] [Dirty South, Alesso, Ruben Haze] Dirty SouthCity Of Dreams - Radio Edit [progressive_house, tropical_house, edm, dance... 12 0.705294 https://i.scdn.co/image/ab67616d00001e02b60a6d...
151703 0.03650 ['Alesso', 'Roy English'] 0.537 221400 0.848 0 2ToIksTPpJ4csKPEOdUEyM 0.000000 6 0.4230 -2.431 0 Cool 59 2015-05-26 0.0313 128.023 0.4980 2015 [Alesso, Roy English] [] [Alesso, Roy English] AlessoCool [tropical_house, edm, dance_pop, big_room, pro... 11 0.696263 https://i.scdn.co/image/ab67616d00001e02b804bb...
31186 0.02460 ['Steve Aoki', 'Moxie'] 0.639 191653 0.795 0 6vscP7Fweq7fwosyliwjRq 0.000324 9 0.5090 -3.535 1 I Love It When You Cry (Moxoki) - Radio Edit 54 2015-05-11 0.0416 128.013 0.4540 2015 [Steve Aoki, Moxie] [] [Steve Aoki, Moxie] Steve AokiI Love It When You Cry (Moxoki) - Ra... [edm, dance_pop, big_room, tropical_house, ele... 10 0.696229 https://i.scdn.co/image/ab67616d00001e02838fa1...
106352 0.00837 ['Galantis'] 0.184 221286 0.871 0 7gUg4GdOA6Y6yRDe36GIjK 0.167000 8 0.1500 -3.245 0 You 53 2015-06-05 0.0661 127.972 0.2100 2015 [Galantis] [] [Galantis] GalantisYou [tropical_house, edm, dance_pop, big_room, pop... 10 0.695491 https://i.scdn.co/image/ab67616d00001e022b5179...
65200 0.45800 ['Martin Garrix', 'Dean Lewis'] 0.651 236765 0.693 0 7pWK1kMgHy5lNNiIfuRbkP 0.000000 4 0.3350 -4.722 1 Used To Love (with Dean Lewis) 76 2019-10-31 0.0375 118.970 0.3920 2019 [Martin Garrix, Dean Lewis] [] [Martin Garrix, Dean Lewis] Martin GarrixUsed To Love (with Dean Lewis) [progressive_house, tropical_house, edm, big_r... 15 0.695212 https://i.scdn.co/image/ab67616d00001e02dcc283...
65216 0.00107 ['Martin Garrix'] 0.675 304229 0.868 1 1TWfkGrhF7ob0nwB2M6knb 0.715000 1 0.3740 -6.360 1 Animals 66 2013-07-01 0.0392 128.007 0.0376 2013 [Martin Garrix] [] [Martin Garrix] Martin GarrixAnimals [progressive_house, tropical_house, edm, big_r... 13 0.688356 https://i.scdn.co/image/ab67616d00001e02eb6f61...
65215 0.00165 ['Martin Garrix'] 0.677 303827 0.866 0 6JEntXLt4z98CcDtIH9sU7 0.662000 1 0.4120 -6.403 1 Animals - Extended 52 2013-01-01 0.0392 128.005 0.0386 2013 [Martin Garrix] [] [Martin Garrix] Martin GarrixAnimals - Extended [progressive_house, tropical_house, edm, big_r... 10 0.687930 https://i.scdn.co/image/ab67616d00001e029564b7...
31185 0.00377 ['Steve Aoki', 'Louis Tomlinson'] 0.647 198774 0.932 0 508oFmt92FyICj6pZiWQwC 0.000002 11 0.0574 -3.517 1 Just Hold On 60 2018-11-09 0.0830 115.000 0.3870 2018 [Steve Aoki, Louis Tomlinson] [] [Steve Aoki, Louis Tomlinson] Steve AokiJust Hold On [edm, dance_pop, big_room, pop, tropical_house... 12 0.686015 https://i.scdn.co/image/ab67616d00001e02c37b50...
151699 0.00234 ['Alesso', 'Matthew Koma'] 0.368 195467 0.823 0 5pVk15sR3OgIeKBKqG9jWw 0.000002 2 0.1740 -6.245 1 Years 48 2013-01-01 0.0804 128.004 0.3230 2013 [Alesso, Matthew Koma] [] [Alesso, Matthew Koma] AlessoYears [tropical_house, edm, dance_pop, big_room, pro... 9 0.685903 https://i.scdn.co/image/ab67616d00001e0252c261...
151701 0.08420 ['Alesso', 'Nico & Vinz'] 0.655 240413 0.818 0 2kYqdSlrtovVMMIn6ykzba 0.000000 2 0.1060 -3.626 1 I Wanna Know 63 2016-04-01 0.0330 115.971 0.4740 2016 [Alesso, Nico & Vinz] [] [Alesso, Nico & Vinz] AlessoI Wanna Know [tropical_house, edm, pop_rap, dance_pop, big_... 12 0.682655 https://i.scdn.co/image/ab67616d00001e02a12c77...
106365 0.58700 ['Gala'] 0.704 213394 0.861 0 3u5N55tHf7hXATSQrjBh2q 0.061500 2 0.0992 -4.221 0 Freed From Desire 72 2007-04-18 0.0493 128.990 0.6360 2007 [Gala] [] [Gala] GalaFreed From Desire [tropical_house, edm, dance_pop, big_room, pop... 14 0.682282 https://i.scdn.co/image/ab67616d00001e02e3a264...
38863 0.49500 ['SZA', 'Calvin Harris', 'Funk Wav'] 0.775 171806 0.573 0 0P6AWOA4LG1XOctzaVu5tt 0.000000 11 0.1260 -4.933 1 The Weekend - Funk Wav Remix 78 2017-12-15 0.0585 101.925 0.6670 2017 [SZA, Calvin Harris, Funk Wav] [] [SZA, Calvin Harris, Funk Wav] SZAThe Weekend - Funk Wav Remix [rap, progressive_house, tropical_house, edm, ... 15 0.680499 https://i.scdn.co/image/ab67616d00001e02b19d1c...
146678 0.00509 ['Axwell'] 0.634 426947 0.846 0 2EjN9jtgovwI8XSYnhoVmf 0.695000 11 0.2290 -7.848 0 Feel The Vibe 52 2005-07-16 0.0456 128.009 0.8180 2005 [Axwell] [] [Axwell] AxwellFeel The Vibe [tropical_house, edm, dance_pop, big_room, pop... 10 0.680430 https://i.scdn.co/image/ab67616d00001e02ea6dc3...
37000 0.00864 ['Sebastian Ingrosso', 'Alesso', 'Ryan Tedder'] 0.416 205440 0.849 0 5Sey3HgGa6KB46mlOyCClZ 0.000138 1 0.2040 -4.909 0 Calling (Lose My Mind) - Radio Edit 56 2012-01-01 0.0455 125.098 0.1470 2012 [Sebastian Ingrosso, Alesso, Ryan Tedder] [] [Sebastian Ingrosso, Alesso, Ryan Tedder] Sebastian IngrossoCalling (Lose My Mind) - Rad... [progressive_house, tropical_house, edm, dance... 11 0.675258 https://i.scdn.co/image/ab67616d00001e02f9b356...
65211 0.05000 ['Martin Garrix'] 0.534 230635 0.711 0 6EsH66Uto1zwZlDGQ6RokU 0.003100 10 0.1350 -5.927 0 Forbidden Voices 64 2015-02-23 0.0368 128.102 0.3000 2015 [Martin Garrix] [] [Martin Garrix] Martin GarrixForbidden Voices [progressive_house, tropical_house, edm, big_r... 12 0.675015 https://i.scdn.co/image/ab67616d00001e025a68d0...
54230 0.02590 ['Oliver Heldens', 'Boy Matthews'] 0.751 156913 0.714 0 5fYN8kPYyAWWJUBX57vmXb 0.000504 2 0.0508 -6.502 0 Details (feat. Boy Matthews) 70 2020-04-17 0.0379 120.007 0.5290 2020 [Oliver Heldens, Boy Matthews] [] [Oliver Heldens, Boy Matthews] Oliver HeldensDetails (feat. Boy Matthews) [progressive_house, edm, future_house, uk_danc... 14 0.671667 https://i.scdn.co/image/ab67616d00001e0204ba16...
135503 0.09350 ['Calvin Harris'] 0.819 219160 0.913 0 1vvNmPOiUuyCbgWmtc6yfm 0.000037 4 0.1610 -3.059 0 My Way 76 2016-09-16 0.0427 119.989 0.5360 2016 [Calvin Harris] [] [Calvin Harris] Calvin HarrisMy Way [progressive_house, tropical_house, edm, uk_da... 15 0.670564 https://i.scdn.co/image/ab67616d00001e028d12bc...
59994 0.17000 ['Moguai', 'Cheat Codes'] 0.622 144910 0.802 0 2FGh2ref26EwA3Z5st5oHb 0.000000 9 0.2630 -4.969 0 Hold On (feat. Cheat Codes) - 2020 Edit 68 2020-03-06 0.1670 124.859 0.7640 2020 [Moguai, Cheat Codes] [] [Moguai, Cheat Codes] MoguaiHold On (feat. Cheat Codes) - 2020 Edit [german_techno, progressive_house, tropical_ho... 13 0.669640 https://i.scdn.co/image/ab67616d00001e024277f1...
146759 0.07150 ['Avicii'] 0.592 277262 0.873 0 0vrmHPfoBadXVr2n0m1aqZ 0.009820 9 0.1420 -5.650 1 Heaven 76 2019-06-06 0.0275 122.011 0.5160 2019 [Avicii] [] [Avicii] AviciiHeaven [pop, dance_pop, big_room, edm] 15 0.668757 https://i.scdn.co/image/ab67616d00001e02660ee2...
78109 0.16600 ['Kygo', 'Valerie Broussard'] 0.673 208567 0.596 0 3Kuu5vASpXK8oRsxOvau6P 0.000000 10 0.1100 -7.891 1 Think About You 68 2019-02-14 0.0354 123.969 0.1900 2019 [Kygo, Valerie Broussard] [] [Kygo, Valerie Broussard] KygoThink About You [pop, tropical_house, edm] 13 0.668087 https://i.scdn.co/image/ab67616d00001e02a65683...
135502 0.03700 ['Calvin Harris', 'Dua Lipa'] 0.791 214847 0.862 0 7ef4DlsgrMEH11cDZd32M6 0.000022 9 0.0814 -3.240 0 One Kiss (with Dua Lipa) 84 2018-04-06 0.1100 123.994 0.5920 2018 [Calvin Harris, Dua Lipa] [] [Calvin Harris, Dua Lipa] Calvin HarrisOne Kiss (with Dua Lipa) [progressive_house, tropical_house, edm, uk_da... 16 0.663355 https://i.scdn.co/image/ab67616d00001e02d09f96...
146749 0.27200 ['Avicii', 'Aloe Blacc'] 0.802 157202 0.645 0 2x0RZdkZcD8QRI53XT4GI5 0.000000 5 0.1190 -6.181 0 SOS (feat. Aloe Blacc) 80 2019-06-06 0.0715 100.001 0.3760 2019 [Avicii, Aloe Blacc] [] [Avicii, Aloe Blacc] AviciiSOS (feat. Aloe Blacc) [edm, dance_pop, big_room, r&b, pop] 16 0.663076 https://i.scdn.co/image/ab67616d00001e02660ee2...
135495 0.02110 ['Calvin Harris'] 0.596 222533 0.856 0 6YUTL4dYpB9xZO5qExPf05 0.017800 4 0.1410 -3.556 0 Summer 81 2014-10-31 0.0346 127.949 0.7430 2014 [Calvin Harris] [] [Calvin Harris] Calvin HarrisSummer [progressive_house, tropical_house, edm, uk_da... 16 0.662278 https://i.scdn.co/image/ab67616d00001e02063c04...
59993 0.19400 ['Moguai', 'Cheat Codes'] 0.611 178560 0.785 0 0XnHIhm9ppEHHDSRESdEcV 0.000000 5 0.0956 -5.721 1 Hold On (feat. Cheat Codes) - Radio Edit 68 2015-09-11 0.0707 125.030 0.5450 2015 [Moguai, Cheat Codes] [] [Moguai, Cheat Codes] MoguaiHold On (feat. Cheat Codes) - Radio Edit [german_techno, progressive_house, tropical_ho... 13 0.661663 https://i.scdn.co/image/ab67616d00001e024e2c1a...
52870 0.00533 ['Otto Knows'] 0.679 357507 0.732 0 2nIDPOUOprhe14XoCK6gxw 0.117000 3 0.0880 -7.089 1 Million Voices 44 2012-01-01 0.0526 125.981 0.2680 2012 [Otto Knows] [] [Otto Knows] Otto KnowsMillion Voices [progressive_house, edm, dance_pop, big_room, ... 8 0.661482 https://i.scdn.co/image/ab67616d00001e02f594e0...
146289 0.01140 ['BTS', 'Steve Aoki'] 0.606 307676 0.848 0 75scDPqGs75FotglJSoOI2 0.000001 11 0.2060 -3.952 1 MIC Drop (Steve Aoki Remix) [Full Length Edition] 74 2018-08-24 0.1840 170.010 0.5400 2018 [BTS, Steve Aoki] [] [BTS, Steve Aoki] BTSMIC Drop (Steve Aoki Remix) [Full Length Ed... [k-pop_boy_group, edm, dance_pop, big_room, k-... 14 0.661367 https://i.scdn.co/image/ab67616d00001e026feb6d...
52869 0.00220 ['Otto Knows'] 0.582 192867 0.894 0 0MOiv7WTXCqvm89lVCf9C8 0.022300 8 0.0664 -6.298 1 Million Voices - Radio Edit 66 2012-01-01 0.0410 125.946 0.0694 2012 [Otto Knows] [] [Otto Knows] Otto KnowsMillion Voices - Radio Edit [progressive_house, edm, dance_pop, big_room, ... 13 0.661191 https://i.scdn.co/image/ab67616d00001e026368be...
65214 0.00137 ['Martin Garrix'] 0.593 176120 0.914 0 65G7XDGcybJiGywSCXJiL5 0.445000 1 0.0714 -5.351 1 Animals - Radio Edit 58 2016-12-16 0.0363 128.015 0.0381 2016 [Martin Garrix] [] [Martin Garrix] Martin GarrixAnimals - Radio Edit [progressive_house, tropical_house, edm, big_r... 11 0.659130 https://i.scdn.co/image/ab67616d00001e02a8bbff...
visualize_songs(edm_top40)
chill_top40 = generate_playlist_recos(spotify_df, complete_feature_set_playlist_vector_chill, complete_feature_set_nonplaylist_chill)